我试图通过查看子元素的id来过滤div元素,但是我似乎无法使其工作并且无法找到原因。
html:
<div class="section-link" id="section-tooltip">
<div class="brand tp" style="display: none;"></div>
contents
</div>
<div class="section-link" id="section-tooltip">
<div class="brand garden" style="display: none;"></div>
contents
</div>
js:
function brand(string){
var brand = string;
$('.section-link').hide();
if ($(".section-link").children('.brand').hasClass(brand)) {
$(this).parent().show();
}
}
然后我通过chrome浏览器执行以下操作:javascript:brand(“tp”);
它隐藏了所有div,但它没有显示内部带有tp元素的div
答案 0 :(得分:2)
$(“this”)错了。
$(this) //this is right
编辑。另一个: 它不是
.hasclass()
但
.hasClass()
答案 1 :(得分:2)
这段代码:
if ($(".section-link").children('.brand').hasClass(brand)) {
$("this").parent().show();
}
应改为:
$(".section-link").children('.brand').each(function(){
if($(this).find(brand).length > 0){
$(this).find(brand)[0].parent().show(); //assuming onlt the first 'tp's parent needs to be shown
}
});
PS:这不需要附上引号