0
<html>
<head>
<script>
function A(){
    $('input[name="B[]"]').each(function() { 
        if(('$(this) .BtnSet .Child input:text[name="A[]"]').length){
         //yes the Child class is inside JRow class and has textboxes with name A[]
        }
    });
    return false;
}
</script>
</head>
<body>
<form onsubmit="return A()">
    <div class="row JRow">
     <input type="text" name="B[]"></input>
     <input type="text" name="B[]"></input>
        <div class="BtnSet">
            <div class="Child">
                <input type="text" name="A[]"></input>
                <input type="text" name="A[]"></input>
            </div>
        </div>
    </div>
    <input type="submit" value="Submit"></input>
</form>
</body>
</html>

我需要检查 B[] 是否有 BtnSet 类。里面有没有Child类,里面有没有像A[]这样的子元素。我做的准确吗?但问题是在这种情况下,当我打印 alert('$(this) .BtnSet .Child input:text[name="A[]"]').length) 时,lenth 总是为 45。请解释一下原因是什么?它没有给出正确的长度为2吗?

4

3 回答 3

2
$(this).find("*[class='BtnSet']").length;

您正在获取字符串长度,$(this)应该在外面,就像@CoursesWeb 指出的那样,这些不是 name=b[] 的输入元素的子元素,而是兄弟姐妹,您将不得不使用siblings它!

 $(this).siblings("*[class='BtnSet']").length;
于 2013-09-20T05:25:06.770 回答
0

我认为数字 45 是您显然不需要的字符串 的长度。$(this) .BtnSet .Child input:text[name="A[]"]您需要的是在div.BtnSet. 所以这应该有效

 $(this).siblings("div.BtnSet").first().find("input[name='A[]']").length;
于 2013-09-20T05:30:00.217 回答
0

BtnSet 不在 B[] 中,而是在 中的一个子项row jRow,如 B[]。

文本输入标签没有子项。

于 2013-09-20T05:26:51.460 回答