На примере вы использовали бы не нужен вообще, так как если не выбраны элементы, методы называются не делать ничего.
Я не могу представить себе ситуацию, когда было бы целесообразно иметь оператор if в середине цепочки jQuery, кроме как внутри чего-либо, например, метода фильтра или каждого метода.
Update
Я смотрю на это с точки применяемости зрения. Сравните эти две ситуации:
if ($(".div").length) {
console.log("We found divs");
} else {
console.log("We did not find div");
}
против
$(".div").test(function(){
console.log("We found divs");
},function(){
console.log("We did not find divs");
});
Может быть, метод JQuery легче читать для вас, для меня это примерно такой же. Часть, которая убивает его для меня, это тот факт, что метод jQuery может проверять длину, если вы не добавите логический параметр и больше логики внутри плагина, в то время как оператор if просто изменит условное выражение.
Если плагин принят условный, он будет в конечном итоге делает this.each
и проверять состояние каждого элемента, однако условная, что вы передаете должны быть функцией, которая возвращает true
или false
для данного элемента. Как будто уже существующий метод .filter
.
Update
Для полноты, вот скрипка сравнения плагина, который принимает условие функцию с помощью $.fn.each
. http://jsfiddle.net/fdYSx/2/
Я не думаю, что это более читаемый или более простой в использовании.
Это зависит от того, что вы делаете. Что делаешь? – LeonardChallis
Вы всегда можете сделать
$("#test").length ? (function() { })() : (function() { })();
– slowpoison** jQuery - это javascript ** ... – gdoron