Как вы проверяете, соответствует ли селектор чему-то в jQuery? [дубликат]
этот вопрос уже есть ответ здесь:
в Mootools, я бы просто побежал if ($('target')) { ... }
. Делает if ($('#target')) { ... }
в jQuery работают одинаково?
11 ответов
поскольку другие комментаторы предлагают наиболее эффективный способ сделать это, кажется,:
if ($(selector).length ) {
// Do something
}
Если вы абсолютно должны иметь функцию exists () - которая будет медленнее-вы можете сделать:
jQuery.fn.exists = function(){return this.length>0;}
тогда в вашем коде вы можете использовать
if ($(selector).exists()) {
// Do something
}
ответ здесь
нет, jquery всегда возвращает объект jquery независимо от того, был ли селектор сопоставлен или нет. Вам нужно использовать .длина
if ( $('#someDiv').length ){
}
Если вы используете:
jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }
вы подразумеваете, что цепочка была возможна, когда ее нет.
Это было бы лучше
jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }
Я думаю, что большинство людей, ответивших здесь, не совсем поняли вопрос, иначе я мог бы ошибаться.
вопрос в том, " как проверить, является ли селектор существует в jQuery."
большинство людей приняли это за "как проверить, существует ли элемент в DOM с помощью jQuery."Вряд ли взаимозаменяемы.
jQuery позволяет создавать пользовательские селекторы, но смотрите здесь, что происходит, когда вы пытаетесь использовать на e перед инициализацией это;
$(':YEAH');
"Syntax error, unrecognized expression: YEAH"
после запуска в это, я понял, что это был просто вопрос проверки
if ($.expr[':']['YEAH']) {
// Query for your :YEAH selector with ease of mind.
}
Ура.
Я предпочитаю
if (jQuery("#anyElement").is("*")){...}
который в основном проверяет, является ли этот элемент своего рода "*" (любой элемент). Просто более чистый синтаксис и "есть "имеет больше смысла внутри"если"
jQuery.fn.exists = function(selector, callback) {
var $this = $(this);
$this.each(function() {
callback.call(this, ($(this).find(selector).length > 0));
});
};
сначала создайте функцию:
$.fn.is_exists = function(){ return document.getElementById(selector) }
затем
if($(selector).is_exists()){ ... }