<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 []. Я сделал это точно? Но проблема в этом случае, когда я печатаю предупреждение ('$ (this).BtnSet. Ввод ввода: текст [name = "A []"]'). Length), длина lenth всегда равна 45. Пожалуйста, объясните мне, причина для этого? Разве он не дает правильную длину как 2?
Я думаю, что число 45 является длиной строки $(this).BtnSet.Child input:text[name="A[]"]
который вы, очевидно, не требуете. Вам нужна длина двух входных элементов, которые находятся в div.BtnSet
. Так что это должно работать
$(this).siblings("div.BtnSet").first().find("input[name='A[]']").length;
$(this).find("*[class='BtnSet']").length;
вы получаете длину строки, $(this)
должно быть снаружи, и как @CoursesWeb указал, что это не дети входных элементов с именем = b [], но являются братьями и сестрами, вам придется использовать для этого siblings
!
$(this).siblings("*[class='BtnSet']").length;
siblings
. Взгляните на сайт Jquery!
BtnSet не является закрытым B [], но является дочерним row jRow
в row jRow
, например B [].
Текстовые теги ввода не имеют дочерних элементов.
BtnSet
<div>
с классомBtnSet
а затем запрашивает его потомков, чтобы найти<input>
с именемA[]
. Если вы не укажетеfirst()
, тогда запрос продолжит поиск других братьев и сестер с тем же именем класса