使用jquery隐藏基于类的按钮

时间:2014-05-05 06:12:16

标签: jquery

我试图隐藏一个按钮,如果它有一个“List”类,如果没有显示它。在加载时我正在显示按钮,如果有一个类,我将使用jquery隐藏它。它也有效!但我不确定这是最好的方法。有什么建议?这是我的代码

$('.ProductList').parent().find('.CompareButton').show();
   if($('ul.ProductList').hasClass('List')) {
           $(this).find('.CompareButton').hide();
   } 

5 个答案:

答案 0 :(得分:2)

尝试更改此部分

$(this).find('.CompareButton').hide();

成:

$('.CompareButton').hide();

答案 1 :(得分:0)

我认为$(this)不会根据您的代码引用$('ul.ProductList')

您可能需要尝试

$('ul.ProductList').find('.CompareButton').hide();

而不是

$(this).find('.CompareButton').hide();

答案 2 :(得分:0)

很容易的事情就是添加到你的css 2语句中,没有课程list display:block&一个类list display:none就像这样。
当你添加课程。声明2将进行评估 &安培;删除时,语句1将被评估。

ul.ProductList.List  {display:block}
ul.ProductList.List .CompareButton {display:none}

答案 3 :(得分:0)

默认情况下,如果你想显示它,然后在你的html代码中分配display:block,稍后在ready文档中你可以调用一个函数来隐藏它

$(document).ready(function() {
showButton();

});

function showButton() {
if($('ul.ProductList').hasClass('List')) {
           $(this).find('.CompareButton').hide();
   } 

}

答案 4 :(得分:0)

您的jquery代码至少可以缩短一点。

// this can be shown in css by default
$('.ProductList').parent().find('.CompareButton').show(); 
//this replaces your if statement
$('.ProductList.List').parent().find('.CompareButton').hide();

但更好的方法是在不使用javascript的情况下隐藏css所需的内容。