1

私はこのHTMLを持っています:

<ul id="div_choices" class="sortable ui-sortable">
  <li data-original-title="" title="">
    <div class="input-prepend input-append">
      <input class="input_choice_text" type="text" placeholder="متن گزینه مورد نظر را وارد کنید">
    </div>
  </li>
  <li data-original-title="" title="">
    <div class="input-prepend input-append">
      <input class="input_choice_text" type="text" placeholder="متن گزینه مورد نظر را وارد کنید">
    </div>
  </li>
</ul>

そして、入力のテキストを jQuery で取得したいと考えています。私はこのコードを書きましたが、動作しません:

alert($("#div_choices > li:first > input").val());

alert($("#div_choices li").first().children("div .input_choice_text").val())

これ機能します:

$('#div_choices li:first div .input_choice_text').val()

for今、ループですべての入力値を取得したいのですが、を使用childrenしましeqnth-childが、どれも機能しません。これはなぜですか?

var node = $("#div_choices");
var node2 = $("#div_choices li:first div .input_choice_text");
for(var i=1;i<=node.children('li').length;i++) {
  var text = node2.next().children("div .input_choice_text").val();
  alltext += text + "\r\n";
}
4

5 に答える 5

2

試すjQuery.each()

$("#div_choices .input_choice_text").each(function() {
    alltext += this.value + "\r\n";
});
于 2013-10-12T12:56:37.483 に答える
2

メソッドを使用できます.map()

var arr = $('#div_choices .input_choice_text').map(function(){
     return this.value;
}).get();

arrは配列です。文字列が必要な場合は、.join()メソッドを使用して配列を文字列に変換できます。

var str = arr.join("glue");

.map()forループを使用して、選択した要素を反復処理します。

var $nodes = $("#div_choices .input_choice_text"),
    arr = [];

for(var i = 0; i < $nodes.length; i++) {
   arr.push( $nodes.eq(i).val() );
}

// arr.join(',');
于 2013-10-12T12:56:44.230 に答える
0
var node = $("#div_choices");
            var alltext = "";
            var mynode=$("#div_choices li:first div input");

            for(var i=1;i<=node.children('li').length;i++)
            {
                var text = mynode.val();
                alltext += text + "\r\n";

                var parent = mynode.parent().parent();
                mynode = parent.next().find('div input');
            }
于 2013-10-12T13:07:48.377 に答える
0

jquery eq メソッドを使用します。

var $ul=$('ul#div_choices');
var $li=$ul.children();
var len=$li.length;
while(len){
    --len;
    console.log($li.eq(len).find('input').val());
}

jquery の子メソッドを使用します。

while(len){
    --len;
    console.log($($li[len].children[0].children[0]).val());
}

役に立ちますか?

于 2013-10-12T13:43:46.410 に答える