0

次の HTML マークアップがあります。

<table>
    <tr>
        <th><label>Item Name</label></th>
        <th><label>Quantity</label></th>
     </tr>
    <tr>
        <td><input type="text" class="itemized-list-item" size="20"/></td>
        <td><select>
                <option class="quantity" value="1">1</option>
                <option class="quantity" value="2">2</option>
                <option class="quantity" value="3">3</option>
                <option class="quantity" value="4">4</option>
                <option class="quantity" value="5">5</option>
            </select>
        </td>
    </tr>
    <tr>
        <td><input type="text" class="itemized-list-item" size="20"/></td>
        <td><select>
                <option class="quantity" value="1">1</option>
                <option class="quantity" value="2">2</option>
                <option class="quantity" value="3">3</option>
                <option class="quantity" value="4">4</option>
                <option class="quantity" value="5">5</option>
            </select>
        </td>
    </tr>
</table>

入力タイプでアイテムの値を取得し、ドロップダウンで選択した数量オプションを取得するために、次のことを試しました。

var quantity;
var item;
$('.itemized-list-item').each(function() {
    item = $(this).val();
    quantity = $(this).next('.quantity:selected').attr('value');
}

項目の値は取得できますが、選択したオプションは取得できません。

私は何時間も多くの方法を試しましたが、役に立ちませんでした。私が間違っているところに誰かが光を当ててくれることを願っています。

乾杯、ナビ

4

3 に答える 3

4

入力をループする場合、関連する select 要素を取得する 1 つの方法は、現在の入力から最も近い tr まで上に移動し、次に select に戻ることです。

var quantity;
var item;
$('.itemized-list-item').each(function() {
    item = $(this).val();
    quantity = $(this).closest('tr').find('select').val();
    // do something with item and quantity
});

メソッドは次の一致する要素を探してドキュメントを検索しない.next('.quantity:selected')ため、の使用は機能しませんでした。兄弟が存在する場合は直後の兄弟を選択し、指定したセレクターと一致し、それ以外の場合は何も選択しません。.next()

于 2013-02-06T11:39:57.507 に答える
1

これを試して:

var quantity;
var item;
$('.itemized-list-item').each(function() {
    item = $(this).val();
    quantity = $(this).parent().next.find('.quantity:selected').attr('value');
}
于 2013-02-06T11:37:42.723 に答える
1
var quantity,
    item;

$('.itemized-list-item').each(function() {
    item = this.value;
    quantity = $(this).parent().next().find('select').val();
});
于 2013-02-06T11:40:10.533 に答える