我的页面上有几个div
以
<div id="{{ myId }}" class="typelist"><!-- content goes here --></div>
此外,还有以下方式的“链接”列表:
<a href="#" onclick="showThis({{ myId }})">{{ myDescriptiveName }}</a>
通讯员JS部分看起来像这样:
function showThis(id) {
var divs = $('div.typelist');
divs.hide();
divs.find('#' + id).show();
}
我想要做的是,在当前选择中搜索ID为id
的div,并将其切换为“可见”。我现在明白了,find()
只搜索儿童和“孙子”,这解释了为什么上述情况不能按预期发挥作用。
但是,如何在当前选择中正确找到所需的div
?谷歌搜索没有向我提供任何有用的信息。
答案 0 :(得分:4)
应该是
function showThis(id) {
var divs = $('div.typelist');
divs.hide();
$('#' + id).show();
//or divs.filter('#' + id).show();
//or divs.filter('[id="' + id + '"]').show();
}
当您使用.find()时,它会查找divs
元素的后代,但在您的情况下,您要查找的元素属于divs
元素。
在这种情况下,您需要使用.filter()代替.find(),但由于在这种情况下您拥有ID,因此您可以直接使用id-selector
答案 1 :(得分:1)
function showThis(id) {
var divs = $('div.typelist');
divs.hide();
$('#' + id, divs).show();
}
这将在您的选择中查找ID。但无论如何,您的ID应该是唯一的。所以Arun P Johny的回答是最好的。