0

这是我关心的问题,更改值以选择具有相同名称的表单的最佳方法是什么。这是代码,我无法更改 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()) 分配给它们的最佳方法是什么?

谢谢

4

2 回答 2

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。

于 2013-02-11T18:00:37.767 回答
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()用于

将匹配元素集减少到指定索引处的元素

这里的工作示例

于 2013-02-11T18:00:51.897 回答