3 html javascript jquery loops
我为自己的无知道歉 - 我对编程很新.
我正在尝试创建一个循环遍历label元素的脚本,然后li在label文本包含特定字符串时隐藏父元素.请参阅下面的代码:
var labelclass = jQuery("li label");
for (i = 0; i < labelclass.length; i++) {
if ((labelclass).text().indexOf("Hide") >= 0) {
jQuery(this).closest("li").css("display", "none");
}
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><label>Show</label></li>
<li><label>Hide</label></li>
<li><label>Hide</label></li>
<li><label>Show</label></li>
</ul>Run Code Online (Sandbox Code Playgroud)
我不知道我在这里有多远,但我想我可能会误用this.循环也可能不正确.任何人都可以提供任何见解,以便我知道下一步该怎么做?非常感谢您的宝贵时间.
你不需要在这里使用循环,只需使用:contains选择器parent()来获取li,然后hide()就可以了.试试这个:
$("li label:contains('Hide')").parent().hide()Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><label>Show</label></li>
<li><label>Hide</label></li>
<li><label>Hide</label></li>
<li><label>Show</label></li>
</ul>Run Code Online (Sandbox Code Playgroud)
需要注意的是,它:contains会匹配内容的任何部分,因此"隐藏"也会被隐藏.要获得完全匹配,您可以使用filter():
$("li label").filter(function() {
return $(this).text().trim() == 'Hide';
}).parent().hide()Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><label>Show</label></li>
<li><label>Hide</label></li>
<li><label>Do Not Hide</label></li>
<li><label>Show</label></li>
</ul>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |