如何访问所有子<李>jquery中列表中的元素
How to access all child <li> elements in a list in jquery?
例如,我有一个html代码,如下所示:
<ul id="li1">
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li class="class1">f</li>
<li>g</li>
</ul>
我想遍历每个<li>
元素,并检查它是否有一个特定的类"class1
"。我正在寻找看起来像(相当于python(的东西:
for i in $("#li1").children():
print i.hasClass("class1")
我找不到一种方法来评估javascript或jquery中的每个子<li>
元素。有人能帮忙吗?
不能将<li>
直接嵌套在<li>
下。那将是一个无效的加价。虽然,你可能有这样的东西:
<ul id="li1">
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li class="class1">f</li>
<li>g</li>
</ul>
因此,对于上面的代码,要获得相同的输出,请使用以下方式:
$("#li1 li").each(function () {
console.log($(this).hasClass("class1"));
});
这将打印:
false
false
false
false
false
true
false
在Praveen的基础上,您还可以使用以下内容来只循环使用那些具有类的li标记
$("#li1 li.class1").each(function () {
console.log($(this).hasClass("class1"));
});
干杯
这看起来像是在询问如何在JavaScript中循环
这里有一种使用while
的方法,它在具有falsy值的索引处停止(即undefined
(
var i, // set up variables,
i_idx = 0, // initial index
list = $("#li1").children(); // and interesting object
while (i = list[i++]) {
console.log($(i).hasClass("class1"));
}
这里有一种使用for
的方法,它通过在for
的比较表达式空间中做两件事来遍历所有标记
var list = $("#li1").children(); // interesting object
for (var i_idx = 0, i; i = list[i_idx], i_idx < list.length; ++i_idx) {
console.log($(i).hasClass("class1"));
}
这里使用索引i = list[i_idx]
设置i
,然后使用逗号运算符在单个表达式中针对长度i_idx < list.length
测试索引
请注意
- jQuery对象的索引属性指向本机DOM对象,这就是为什么它们需要封装在
$(...)
中才能再次在jQuery中使用 while
和for
等不提供var
作用域,变量i
、i_idx
、list
由其父函数(或全局作用域(确定作用域- 在CCD_ 21或CCD_ 22的条件下生成CCD_。这通常是不希望的,这就是为什么它是提前CCD_ 23d
- 有迭代Array的本地方法(
.forEach
、.map
等(,jQuery也提供迭代方法,但如果你不知道这些方法来自哪里,你可能会意外地被发现(例如,类似的Array,如NodeList,并不总是提供这样的方法(
ES6
如果您在EMCAScript 6支持的环境中工作,您可以使用for..of
,它的行为与python示例中的行为非常相似
for (let i of $("#li1").children()) {
console.log($(i).hasClass("class1"));
}
相关文章:
- 通过点击<李>在jQuery中
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- Jquery在点击<a>标签
- 将jQuery从1.8更新到1.11<a>标记未附加
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 在<头部>使用javascript/jQuery
- JS对象->来自jquery ajax的JSON提交->php迭代
- jQuery只隐藏<tr>在一张桌子上
- jQuery可读性:在<李>要素
- Jquery :gt(value) issue
- jquery仅限<并且>文本框中的符号
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 检查页面范围并提取<h1>内容(如果使用JQuery存在页面)
- 检测活动<李>用于jQuery转盘(分页)
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- jquery 1.8.0语法错误,无法识别的表达式:>
- jQuery复选框(在ul>li下)检查事件
- 硬币滑块jquery-->如何将100%width参数传递给它?似乎只允许图像的像素配置
- 动态显示隐藏表行使用jquery:gt