这是我关心的问题,更改值以选择具有相同名称的表单的最佳方法是什么。这是代码,我不能改变html结构:
<div id="SelectTable">
<div class="SelectClass">
<label class="SelectLabel>Title</label>
<div class="SelectOption>
<select name="cat[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</div>
<div class="SelectClass">
<label class="SelectLabel>Title</label>
<div class="SelectOption>
<select name="cat[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</div>
<div class="SelectClass">
<label class="SelectLabel>Title</label>
<div class="SelectOption>
<select name="cat[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</div>
</div>
选择它们为每个值分配不同值(.val())的最佳方法是什么?
由于
答案 0 :(得分:0)
$('select[name^="cat"]').each(function(index,element){
//do stuff to each individually.
element.val(index); //sets the val to the index of the element, which, you know, is useless
});
那应该选择名称以cat开头的每个元素(名字吓到我之后的方括号),然后遍历它们,然后单独更改它们的val。
答案 1 :(得分:0)
使用eq()
精确定位每个select
:
$('select[name="cat[]"]').eq(0).val(3); // first select
$('select[name="cat[]"]').eq(1).val(2); // second select
$('select[name="cat[]"]').eq(2).val(1); // third select
$('select[name="cat[]"]')
返回所有匹配的元素(在您的情况下为3),然后.eq()
用于
将匹配元素集减少到指定索引处的元素