![](/img/trans.png)
[英]How to add css property to element has specific attribute using jquery?
[英]How to add special attribute to element if has class 'on' or not using jquery?
我有一些动态清单
如果'LI'元素的类名称为'on',则添加属性"aria-hidden=false"
。
同样,如果LI元素的类名称不是'on',则添加属性"aria-hidden=true"
。
这是我的代码
<ul class="list">
<li>1</li>
<li class="on">1</li>
<li>1</li>
<li>1</li>
</ul>
这就是我想要的DOM中的代码
<ul class="list">
<li aria-hidden=true>1</li>
<li class="on" aria-hidden=false>1</li>
<li aria-hidden=true>1</li>
<li aria-hidden=true>1</li>
</ul>
如何用此代码实现? 请帮忙
您可以将类选择器与.filter()
一起使用,以将所需元素作为目标。使用.attr()
来添加属性
//Target all LI elements
var li = $('ul.list li');
//Filter li without on class
li.filter(':not(.on)').attr('aria-hidden', true)
//Filter li with on class
li.filter('.on').attr('aria-hidden', false);
//Target all LI elements var li = $('ul.list li'); //Filter li without on class li.filter(':not(.on)').attr('aria-hidden', true) //Filter li with on class li.filter('.on').attr('aria-hidden', false);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li>1</li> <li class="on">1</li> <li>1</li> <li>1</li> </ul>
你可以这样
$("ul.list li").each(function(){
$(this).attr("aria-hidden",!$(this).hasClass("on"));
});
演示版
$("ul.list li").each(function(){ $(this).attr("aria-hidden",!$(this).hasClass("on")); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li>1</li> <li class="on">1</li> <li>1</li> <li>1</li> </ul>
$('li').attr('aria-hidden', true); $('li.on').attr('aria-hidden', false); //To check if things really changed. Revove it. console.log($('ul.list').html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li>1</li> <li class="on">1</li> <li>1</li> <li>1</li> </ul>
此代码将aria-hidden = false添加到具有“ on”类的项目
$(document).ready(function(){ $('ul.list li.on').attr('aria-hidden', true) $('ul.list li').attr('aria-hidden', false); })
ul.list li.on { background:green }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li >item 1</li> <li class="on" >item 2</li> <li >item 3</li> <li >item 4</li> </ul>
注意:不建议使用aria-hidden =“ false”,请阅读此aria-States_and_properties
尝试这个
$(".list li").not('.on').attr('aria-hidden', true)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li>1</li> <li class="on">1</li> <li>1</li> <li>1</li> </ul>
将.attr()
与回调函数一起使用可完成此工作。 在回调检查元素有类on
与否。
$(".list li").attr("aria-hidden", function(){ return $(this).is(".on") ? false : true; });
[aria-hidden=true] {opacity: 0.5}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="list"> <li>1</li> <li class="on">1 (.on)</li> <li>1</li> <li>1</li> </ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.