jQuery Если у div есть привязанный потомок, то
Возникли проблемы с простым. Мой утренний чай недостаточно крепок.
ЕСЛИ у div есть ребенок, якорь ТОГДА. Не хочу добавлять дополнительный класс в.box
Что-то вроде:
$('.box').click(function(){
if ($(this).children('a')) {
//some thing
} else {
//some thing else
}
});
<div class="box"><a href="#"><img src="#" /></a></div>
<div class="box"><img src="#" /></div>
<div class="box"><img src="#" /></div>
3 ответа
Решение
Проверить length
имущество:
$('.box').click(function(){
if ($(this).children('a').length) {
//some thing
} else {
//some thing else
}
});
Так как children
Метод (как и большинство методов jQuery) возвращает экземпляр jQuery, он всегда оценивается как true
(так что вы всегда будете в if
ветка). length
свойство возвращает число, которое будет оцениваться как false
если это 0
,
Ты можешь использовать .find()
искать селектор для дополнительных селекторов: http://jsfiddle.net/Nf3QH/ надеюсь, это поможет!
В настоящее время нет необходимости в jQuery, вам просто нужно добавить немного ванильного JavaScript, обратите внимание, что код довольно короткий.
cells = document.querySelectorAll('div');
[].forEach.call(cells, function (el) {
//console.log(el.nodeName)
if (el.hasChildNodes() && el.firstChild.nodeName=="A") {
console.log(el)};
});
<div class="box"><a href="#"><img src="#" /></a></div>
<div class="box"><img src="#" /></div>
<div class="box"><img src="#" /></div>