我试图隐藏一个按钮,如果它有一个“List”类,如果没有显示它。在加载时我正在显示按钮,如果有一个类,我将使用jquery隐藏它。它也有效!但我不确定这是最好的方法。有什么建议?这是我的代码
$('.ProductList').parent().find('.CompareButton').show();
if($('ul.ProductList').hasClass('List')) {
$(this).find('.CompareButton').hide();
}
答案 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所需的内容。