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

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 に答える
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 で始まるすべての要素が選択され(名前の後の角括弧が怖かったです)、それらを繰り返し処理して、値を個別に変更します。

于 2013-02-11T18:00:37.767 に答える