Вопрос по jquery, if-statement, this – JQuery, используя «это» в операторе if

11

Я используюif заявление, чтобы определить, есть ли у элемента какие-либо дочерние элементы. Если у него нет детей, я хочу сделать что-то только с этим элементом.

Вот предпосылка того, что я пытаюсь сделать:

if ($("#div a").children().length > 0){
    $(this).hide();
}

Так что если<a> Тег не имеет дочерних элементов, я хочу сделать что-то с этим конкретным элементом (или несколькими элементами, которые также не имеют дочерних элементов).

Проблема в том, чтоthis не был определен, потому что этоif заявление.

Я мог бы что-то полностью упустить, но я не совсем уверен, как этого добиться. Любой совет будет принят во внимание

Ваш Ответ

3   ответа
3

var elem = $("#div a");
if (elem.children().length > 0){
    elem.hide();
}
Error: User Rate Limit ExceededaError: User Rate Limit Exceededjsfiddle.net/skram/bxDNq/5
Error: User Rate Limit Exceeded
10

Edit: добавленнойDEMO Ссылка на сайт

Ты можешь использовать.filter проверить состояние и позвонить.hide на результаты фильтра. Увидеть ниже,

$("#div a").filter(function () {
  return ($(this).children().length > 0)
}).hide();
Error: User Rate Limit Exceeded scferg5
7

$('input').each(function(){
  if ($(this).val()) {
    $(this).addClass('has-value');
  }
});

Похожие вопросы