使用.each()jquery时限制div中的对象

时间:2013-12-06 16:39:55

标签: javascript jquery

所以我试图遍历页面上单个类的所有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

4 个答案:

答案 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();