我尝试创建一个jQuery脚本,可以根据每个列表项中的href
属性过滤掉列表项。因此,如果href
中的listOne
等于href
中的listTwo
,我想向listTwo
li
添加一个类以将其删除从列表中。
<ul id="listOne">
<li><a href="somelink"></a></li>
<li><a href="somelink"></a></li>
</ul>
<ul id="listTwo">
<li><a href="somelink"></a></li>
<li><a href="somelink"></a></li>
</ul>
这是我目前在剧本中所拥有的内容:
var listOneHref = $("#listOne li a").each(function(){$(this).attr("href")});
var listTwoHref = $("#listTwo li a").each(function(){$(this).attr("title")});
if (listTwoHref = listOneHref) {
$("#listTwo ul li").addClass("hidden");
} else {
$("#listTwo ul li").removeClass("hidden");
}
上述脚本的结果是&#34;隐藏&#34;类被添加到li
中的每个listTwo
。它似乎仅选择重复的hrefs。
我如何编写它以便脚本只添加&#34;隐藏&#34;从li
内部href
重复listOne
个{{1}}的课程?
答案 0 :(得分:0)
.each()
不会返回您认为会出现的列表;也不会使用其结果允许您单独处理可能的匹配。
尝试:
$("#listOne li a").each(function() {
var href = this.href;
$('#listTwo li a').each(function() {
if (href == this.href)
$(this).parent().addClass('hidden');
});
});
.hidden {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="listOne">
<li>
<a href="somelink"></a>
</li>
<li>
<a href="somelink"></a>
</li>
</ul>
<ul id="listTwo">
<li><a href="somelink">hidden</a></li>
<li><a href="somelink2">seen</a></li>
</ul>