Каков правильный селектор jquery, чтобы получить все раскрывающиеся списки select с определенным именем класса?
Я хочу перебрать все выпадающие списки с определенным именем класса и добавить к нему элемент, и я просто борюсь с правильным селектором
EDIT: Я, должно быть, делаю что-то неправильно, так как большинство принятых ответов не работают, поэтому я думаю, что в моем коде должна быть какая-то причуда. Я вставил как HTML, так и код jquery ниже. дайте мне знать, если это делает чувство.
HTML-код:
<select onfocus="this.enteredText='';" onkeydown="return handleKey();" onkeyup="event.cancelbubble=true;return false;" onkeypress = "return selectItem();" class="componentSelect" id="components0" name="applicationUpdater.dependencies[0].componentName" >
<option value= 5 >Client</option>
<option value= 79 >Server</option>
</select>
<select onfocus="this.enteredText='';" onkeydown="return handleKey();" onkeyup="event.cancelbubble=true;return false;" onkeypress = "return selectItem();" class="componentSelect" id="components1" name="applicationUpdater.dependencies[0].componentName" >
<option value= 5 >Client</option>
<option value= 79 >Server</option>
</select>
etc . . .
код jquery:
$('select.componentSelect').each(function() {
var select = $(this);
$(select).children('option').each(function() {
if ($(this).text() == currentComponentName) {
$(this).remove();
}
});
});
5 ответов
чтобы ответить на ваш вопрос, вы можете использовать следующую строку, чтобы удалить все <option>
s, содержащий currentComponentName
:
$('select.componentSelect option:contains("' + currentComponentName + '")').remove();
вы должны использовать .селектор классов.
// select every <select> element with classname "yourclassname"
$('select.yourclassname').each(function() {
// $(this) now refers to one specific <select> element
// we append an option to it, like you asked for
$(this).append(
$('<option value="foo">Bar</option>');
);
});
для получения дополнительной информации о том, как правильно выбрать элементы с помощью jQuery, взгляните наhttp://docs.jquery.com/Selectors.
дайте этому выстрел:
$('select.className').each(function() {
var currentSelect = $(this);
// ... do your thing ;-)
});
вам нужно использовать .className
селектор, как это:
$('select.className')
этот селектор объединяет элемент селектор (соответствует всем <select>
elements) с селектором className (соответствующий всем элементам, которые содержат className
класс) найти все <select>
элементы с этим классом.
ваш написал код jQuery работает для меня, пока я определяю currentComponentName
чтобы быть одним из вариантов вашего выбора. Ответ Арон Rotteveel очень близко, но дописывать часть откусил, попробуйте это:
$('select.componentSelect').each(function() {
$(this).append('<option value="foo">Bar</option>');
});