11

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

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

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

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

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

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

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

  • Error: User Rate Limit ExceededaError: User Rate Limit Exceededjsfiddle.net/skram/bxDNq/5

    от
  • Error: User Rate Limit Exceeded

    от scferg5
  • Error: User Rate Limit Exceeded

    от
  • 3

    Простое решение - поместить элемент в переменную.

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

  • 10

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

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

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

  • 7

    Вы могли бы использовать каждый, чтобы перебрать элементы

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