Как проверить наличие пустого выделения [] с помощью jquery? - PullRequest
0 голосов
/ 17 марта 2012

Я использую это из Jquery Mobile, чтобы проверить, был ли нажатый элемент ссылкой

 function findClosestLink(ele) {    
        var self = this;
        while (ele){
            if (ele.nodeName.toLowerCase() == "a"){
                break;
                }
            ele = ele.parentNode;
            }
        return ele;
        }   

Это называется так:

$(document).addEventListener( "click", function( e  ){
        var link = $( findClosestLink(e.target) );
        console.log(link);
        // routine
   });

Queston:
При нажатии на экран функция возвращает пустой массив [] . Я пытаюсь проверить это с помощью

    if (!link) {
       return;
    }

Но это не работает. Как мне проверить []?

Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 17 марта 2012

Возвращаемые позиции: array, поэтому для проверки необходимо использовать свойство .length.

if (!link.length) {
    // your stuff
}
2 голосов
/ 17 марта 2012

Попробуйте

if (link.length == 0) { 
     return;
}

Если ссылка не найдена, длина будет равна 0.

0 голосов
/ 17 марта 2012

Сделайте это вместо этого, его чище и проще для чтения и понимания:

$(document).click(function(e) {
  var $target = $(e.target);
  if($target.is("a")) {
     console.log('link');
  } else {
     // not a link
  }
});

Используется .click () и event.target

...