[英]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.