我有这个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
,eq
,nth-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";
}
答案 0 :(得分:2)
尝试jQuery.each()
$("#div_choices .input_choice_text").each(function() {
alltext += this.value + "\r\n";
});
答案 1 :(得分: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(',');
答案 2 :(得分: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');
}
答案 3 :(得分: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 children方法:
while(len){
--len;
console.log($($li[len].children[0].children[0]).val());
}
对你有帮助吗?
答案 4 :(得分:0)
var arr = $('#div_choices').find('.input_choice_text').map(function(){
return this.value;
}).get().join('\r\n');
这将返回一个字符串,其中包含所有输入元素(具有类input_choice_text
)的值,每个元素都带有新链接,我认为您就是这样做的。我们可以记录这个
console.log(arr);
并且可以检查空白值:
var arr = $('#div_choices').find('.input_choice_text').map(function(){
if(this.value != '') {
return this.value;
}
}).get().join('\r\n');