Как узнать, есть ли у элемента другой элемент внутри его класса

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 []. Я сделал это точно? Но проблема в этом случае, когда я печатаю предупреждение ('$ (this).BtnSet. Ввод ввода: текст [name = "A []"]'). Length), длина lenth всегда равна 45. Пожалуйста, объясните мне, причина для этого? Разве он не дает правильную длину как 2?

Теги:

3 ответа

0
Лучший ответ

Я думаю, что число 45 является длиной строки $(this).BtnSet.Child input:text[name="A[]"] который вы, очевидно, не требуете. Вам нужна длина двух входных элементов, которые находятся в div.BtnSet. Так что это должно работать

 $(this).siblings("div.BtnSet").first().find("input[name='A[]']").length;
  • 0
    Не могли бы вы вкратце объяснить мне это? Что это значит методом first ()?
  • 0
    Он находит первый BtnSet <div> с классом BtnSet а затем запрашивает его потомков, чтобы найти <input> с именем A[] . Если вы не укажете first() , тогда запрос продолжит поиск других братьев и сестер с тем же именем класса
Показать ещё 4 комментария
2
$(this).find("*[class='BtnSet']").length;

вы получаете длину строки, $(this) должно быть снаружи, и как @CoursesWeb указал, что это не дети входных элементов с именем = b [], но являются братьями и сестрами, вам придется использовать для этого siblings !

 $(this).siblings("*[class='BtnSet']").length;
  • 0
    Большое спасибо за ответ. Не могли бы вы объяснить мне это, "$ (this) .siblings (" * [class = 'BtnSet'] "). Length;"
  • 0
    скажем, A (любой элемент контейнера) содержит три элемента, B, C и D! тогда B, C & D - дети А, A - их родитель (очевидно!), а B, C & D - братья и сестры друг другу! так что если вы знаете B, вы можете найти C & D, используя siblings . Взгляните на сайт Jquery!
0

BtnSet не является закрытым B [], но является дочерним row jRow в row jRow, например B [].

Текстовые теги ввода не имеют дочерних элементов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню