用jquery 语法优化这段代码 obj.ele.find('.empty').hide(); obj.ele.find('.mini-listbox-item').each(function () { var $this = $(this); if ($this.text().indexOf(obj.value) > -1) { $this.removeClass('hidden'); } else { $this.addClass('hidden'); } }); if (obj.ele.find('.mini-listbox-item').length === obj.ele.find('.mini-listbox-item.hidden').length) { obj.ele.find('.empty').show(); }
时间: 2023-12-30 14:06:51 浏览: 114
【JavaScript源代码】JavaScript实现跟随广告的示例代码.docx
可以使用链式调用、缓存 jQuery 对象和选择器、使用 ternary operator 等方式来优化代码,如下所示:
```
var $empty = obj.ele.find('.empty');
var $items = obj.ele.find('.mini-listbox-item');
var itemsLength = $items.length;
var hiddenItemsLength = $items.filter('.hidden').length;
$empty.toggle(hiddenItemsLength === itemsLength);
$items.each(function () {
var $this = $(this);
var isMatched = $this.text().indexOf(obj.value) > -1;
$this.toggleClass('hidden', !isMatched);
});
```
这样可以减少多次查询 DOM 元素,提高代码执行效率,并且可读性更好。
阅读全文