javascript - jQuery hasClass 无法循环遍历子项

标签 javascript jquery wordpress

如果某些元素在 Wordpress Widget 中包含某个类,我会尝试查找这些元素。但我不明白的是为什么 authors.hasClass() 没问题,但 currentAuthor.hasClass() 抛出错误,说它不是函数!

HTML

<ul>
    <li class="active"></li>
    <li></li>
</ul>

JS

var authors = jQuery("li");
authors.hasClass("active");

for (i = 0; i < authors.length; i++) { 
    var currentAuthor = authors[i];
    currentAuthor.hasClass("active");
}

最佳答案

通过将对象作为数组循环,您将它们视为标准的 JavaScript 对象。因为 hasClass() 是一个 jQuery 方法,所以它只能用在 jQuery 对象上。您可以改用 jQuery 的 .each(),其中 jQuery(this) 指的是循环中的当前元素。

var authors = jQuery("li");

authors.each(function() {
    if (jQuery(this).hasClass("active")){
        //Do stuff
    }
});

话虽这么说,为什么选择所有 li 元素然后检查它们是否具有事件类,而您可以简单地选择所有事件元素?

var $active = jQuery("li.active");

$active.each(function() {
    //Do stuff
});

或者根据你正在做的事情,你甚至可能不需要 each()

// Turn all active li elements red
var $active = jQuery("li.active");
$active.css("color", "red");

关于javascript - jQuery hasClass 无法循环遍历子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42737610/

相关文章:

jquery - JSF 2.0 中如何处理 AJAX 请求?

mysql - Wordpress - ftp 站点/导出数据库到本地主机,本地主机图像仍然指向 .com,为什么?

php - 如何向 WP_Widget_Text 添加另一个文本框

javascript - 有人可以通过响应式设计解释响应式功能吗?

javascript - 视频更改而无需重新加载页面时,HTML5视频元素缺少END事件

javascript - 如何加载两个 iframe,第一个 iframe 已经加载后一个?

javascript - 应用 css 高度后获取网页上元素的默认高度)

javascript - 在嵌套的 Polymer 自定义元素中访问 JavaScript 方法

javascript - 他们在 fsharp 文档中使用的 javascript 库是什么

html - WordPress 网站忽略@import 语句