使用jQuery在Change上设置CSS属性

时间:2014-06-03 21:10:19

标签: javascript jquery html css

当其他visibility display属性的状态发生变化时,我想在click上使用jQuery更改css divvisibility属性。 (许多人对于混淆的标记道歉,但需要操纵其他人的构造):

此页面中有[data-label="Checkbox"] [data-label="Checked"]的四个实例。我想在任何 [data-label="trash"]属性时将[data-label="Sort Options"] visibility: visible; display: [empty value]设置为[data-label="Checkbox"] [data-label="Checked"]更改为'visibility', 'visible'

否则,如果[data-label="Checkbox"] [data-label="Checked"]具有属性'visibility', 'visible',我想将[data-label="trash"][data-label="Sort Options"]设置回来到他们的初始状态:display: none; visibility: hidden;

这是标记:

<div data-label="Sort Options" style="display: none; visibility: hidden;">
    <div data-label="trash" style="display: none; visibility: hidden;"></div>
</div>

<div data-label="Checkbox">
    <div data-label="Unchecked"></div>
    <div data-label="Checked" style="display: none; visibility: hidden;"></div>
</div>

以下是我尝试过的失败:

$('[data-label="Checkbox"]').click(function() {
    if ('[data-label="Checkbox"] [data-label="Checked"]').css('visibility', 'visible') {
        $('[data-label="trash"], [data-label="Sort Options"]').css({'display': '', 'visibility': 'visible'});
    } else {
        $('[data-label="trash"], [data-label="Sort Options"]').css({'display': 'none', 'visibility': 'hidden'});    
    } 
});

任何帮助将不胜感激!感谢

1 个答案:

答案 0 :(得分:0)

 if ('[data-label="Checkbox"] [data-label="Checked"]').css('visibility', 'visible') 

首先.css()用于设置或获取css,你在这里使用的方式是setter,get应该像

if ($('div[data-label="Checkbox"]').css('visibility')=='visible'&& $('div[data-label="Checked"]').css('visibility')=='visible') 

其次,你可以使用一个选择器来处理没有逻辑运算符的两个元素,你可以看到我使用&&来检查'visibility'是否都设置为'visible'

如果您将display设置为none,则不必使用visibility属性,尽管使用的标准是display