所以我试图遍历页面上单个类的所有div
。我有类似以下内容:
$(.person).each(function(i,obj){
var name = $(".person .name").val();
}
我查看了this个问题。这是在迭代时从特定div获取input
名称的好方法吗?
<div class="person">
Name:<input type="text" class="name">
</div>
页面上有很多人div
答案 0 :(得分:6)
使用.find
:
$('.person').each(function(){
var name = $(this).find(".name").val();
});
在.each
回调中,this
指的是当前迭代的DOM元素。通过将其传递给jQuery($(this)
),您可以创建一个元素的选择。 .find
然后搜索与该元素内的选择器匹配的后代。
答案 1 :(得分:1)
尝试:
$(.person).each(function(i,obj){
name = $(this).find(".name").val(); //$(this) will represent current div
}
答案 2 :(得分:0)
$('.person').each(function(){
name = $(this).find('.name').val();
});
答案 3 :(得分:0)
假设可以有多个input.name
,您需要使用数组:
var names = [];
names = $(".person .name").map(function(i,e){
return $(e).val();
});
JS小提琴: http://jsfiddle.net/58TQ6/1/
如果表单上只有一个名称字段,请在input
而不是类上添加ID。
<input id="name" type="text"/>
var name = $("#name").val();