如何检查jquery中是否存在更多子元素?

时间:2013-11-17 05:57:27

标签: jquery

我有这种结构:

<div class="outer">
    <div class="a">
      <input class="fname" type="text" value="<?php echo $user['fname']; ?>" />
      <input class="lname" type="text" value="<?php echo $user['lname']; ?>" />
    </div>
    <span class="update">Update</span>
</div>

<div class="outer">
    <div class="a">
      <input class="email" type="text" value="<?php echo $user['email']; ?>" />
    </div>
    <span class="update">Update</span>
</div>

<div class="outer">
    <div class="a">
      <input class="dob" type="text" value="<?php echo $user['dob']; ?>" />
    </div>
<span class="update">Update</span>
</div>

我试图通过jQuery从文本字段中读取值。在点击a时,我可以使用update班级的第一个孩子:$(this).siblings('.a').children('input').val()

如果点击全名更新,我不确定如何获取其他值。在这种情况下,我必须抓住fnamelname。如果我可以检查是否存在更多的孩子,那么抓住下一个的值?困惑!

提前感谢您的帮助。

修改

以下是我的意见:

$(document).on('click', '.update', function(event) {
    var newval = $(this).siblings('.a').children('input').val();
    alert(newval);
}

1 个答案:

答案 0 :(得分:2)

尝试一下,

var fname = $(this).siblings('.a').children('input.fname').val();
var lname = $(this).siblings('.a').children('input.lname').val();

DEMO

如果您想获取所有值,请尝试使用.each()

$(".update").click(function(){

    $(this).siblings('.a').children('input').each(function(){
        alert($(this).val());
    });
});

DEMO I