将不同的值分配给多个具有相同名称的JQuery选择
问题描述:
以下是我的问题:更改值以选择具有相同名称的表单的最佳方法是什么?下面是代码,我不能改变的HTML stucture:将不同的值分配给多个具有相同名称的JQuery选择
<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()),他们每个人的最佳方式?
感谢
答
使用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()
用于
减少匹配元素的到指定指数的那个
答
$('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
});
这应该选择具有与猫开头的名称每个元素(你方括号中的名字后,把我吓坏了。),然后遍历他们为你改变自己的瓦尔斯独立但是。
+0
我正在寻找分配不同的价值给他们每个人。你的代码将为它们中的每一个应用相同的操作。 @ManseUK得到了答案。不管怎么说,还是要谢谢你。 – LostSEO 2013-02-11 18:25:01
是否有替代命名每个选择相同?这种打败属性的目的。 – John 2013-02-11 18:00:24
解释更多关于你想要达到的目标......举一个具体的例子。 – Sparky 2013-02-11 18:02:38
感谢您的关注,@ManseUK得到了正确的答案。目的是在选择一个选项后,通过ajax/jquery逐一加载每个选择。然后通过post方法传递数组。这是一种多选下拉菜单。 – LostSEO 2013-02-11 18:16:03