0

新しい順序付けられていないリスト項目を追加する関数があります。新しく作成されたリスト項目の要素の値の 1 つを、新しいリスト項目のすぐ上のリスト項目の値に基づく値に設定したいと思います。

たとえば、次のようなものがあるとします。

<form id="form" action="">

<ul id="list1" class="listing">

    <li id="input1" class="item">

        <input id="descr1" class="descr" type="text" value="" name="descr1" />
        <input id="group1" class="group" type="text" value="" name="group1" />
        <input id="order1" class="order_field" type="text" value="4" name="order1" />
        <input id="row1" class="checkbox" type="checkbox" value="1" name="select_row1" />

    </li>

    <li id="input2" class="item">

        <input id="descr2" class="descr" type="text" value="" name="descr2" />
        <input id="group2" class="group" type="text" value="" name="group2" />
        <input id="order2" class="order_field" type="text" value="5" name="order2" />
        <input id="row2" class="checkbox" type="checkbox" value="2" name="select_row2" />

    </li>

</ul>

新しいリスト アイテムを作成する関数を実行すると、#order2 の値が 1 増加し、新しいリスト アイテム (現在は #order3 を持つ) が 6 に設定されます。たとえば、次のような新しいリスト項目を作成しました。

    <li id="input3" class="item">

        <input id="descr3" class="descr" type="text" value="" name="descr3" />
        <input id="group3" class="group" type="text" value="" name="group3" />
        <input id="order3" class="order_field" type="text" value="6" name="order3" />
        <input id="row3" class="checkbox" type="checkbox" value="3" name="select_row3" />

    </li>

最後のリスト項目に到達してクラス .order_field の値を取得し、新しいリスト項目を作成するときにその値 (+1) を使用する方法を見つける必要があります。私の問題は、最後のリスト項目の .order_field 値に到達するためのセレクターをまとめる方法がわからないことです。

それが理にかなっていることを願っています。

ありがとう、ショーン

4

4 に答える 4

2

それは単純です:

var value = $('#list1 li:last .order_field').val();

また、値を数値に変換する必要があります。これはparseInt、単項を使用して行うことができ+ます。

var newValue = parseInt(value, 10) + 1;
// or
var newValue = +value + 1;
于 2011-07-02T17:59:19.400 に答える
1
var newValue = parseFloat($("#list1 li:last").children(".order_field").val())+1;

実例: http: //jsfiddle.net/JBhdF/2/

于 2011-07-02T17:56:26.027 に答える
1
$("#list1 li:last input.order_field").val()

あなたが探している価値をあなたに与えるはずです。

于 2011-07-02T17:58:42.613 に答える
1

これで最後の値を取得できます:

var last_value = $("#list1 li:last").find(".order_field").val();

それは何をするためのものか?
-最後のli内側の#list1ulを選択します。
-その中、クラスを持つ要素を見つけて、order_fieldその値を返します。

インクリメントするには、次のようにします。

var new_value = parseInt(last_value, 10) + 1;

お役に立てれば。乾杯

于 2011-07-02T17:59:35.900 に答える