-1

我正在尝试通过查看子元素的 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 元素的那个

4

2 回答 2

2

$("this") 是错误的。

$(this) //this is right

编辑。另一个:不是

.hasclass()

.hasClass()
于 2013-07-19T15:32:20.117 回答
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:这不需要封闭引号

于 2013-07-19T15:33:37.717 回答