繁体   English   中英

如何在不使用indexOf方法的情况下定位具有特定内联样式的特定dom css类

[英]How can I target a specific dom css class that has a specific inline style without using indexOf method

最初对我有用的答案在这里。
如何选择具有特定内联样式的元素?

$('div').filter(function() {
return $(this).attr('style') == undefined || $(this).attr('style').indexOf('display: none;') == -1
}).

但是,它是Jquery 2+,我想知道是否有更好的方法来实现相同的结果。 对于上述方法,我希望可以更改的是,它需要使用indexOf JS方法来获得-1或0的值,以实现真实的falesy类型返回。

我已经尝试过了:但是默认情况下它会选择第一个样式。 而且我还没有找到一种将结果“过滤”到特定类的方法。

$("[style='display: block;']").css("color", "yellow");

我用JSBIN弄清楚了。 是的...我会分享我的答案...

我像上面一样使用过滤器函数,但是使用.is方法的属性等于选择器值。 这是有关jquery属性等于选择器的更多信息。 https://api.jquery.com/attribute-equals-selector/

这是最终代码和Jsbin两种方法。 让我知道你的想法。 过滤器函数查找在.bottom-drawer类的“此”文档中是否存在值为“ display:block”的样式。 我用style *给它一种类似显示的模糊方法:block或block;。
http://jsbin.com/coroxa/1/edit?html,js,输出

$('.bottom-drawer').filter(function() {
    return $(this).is("[style*='display: block']") === true;
}).slideToggle(620);

这是我想出的答案以及相关的bin。

该项目完成的工作是创建div抽屉效果,该效果在另一个抽屉打开时隐藏-另一个关闭。

这并不是说使用indexOf的方法不是一个好选择,但是对我来说,出于选择特定类或id的内联样式的目的似乎并不直观。 希望这对某人有帮助。

http://jsbin.com/coroxa/1/edit?html,js,输出

$('.top.expand-accordian a').click(function(e){
    e.preventDefault();
    $(this).find('i').toggleClass('rotate');
    $('.maui-drawer').slideToggle(620);
    $('.bottom-drawer').filter(function() {
      //return $(this).attr('style').indexOf('display: block;') === 0;
    return $(this).is("[style*='display: block']") === true;
    }).slideToggle(620);
});

$('.bottom.expand-accordian a').click(function(e){
    e.preventDefault();
    $(this).find('i').toggleClass('rotate');
    $('.bottom-drawer').slideToggle(620);
    $('.maui-drawer').filter(function() {
    //;return $(this).attr('style').indexOf('display: block;') === 0;
    return $(this).is("[style*='display: block']") === true;
    }).slideToggle(620);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM