Javascript 请求多个id';具有相同数据属性的
我正在尝试检查多个列表项中的数据属性 我的HTML:Javascript 请求多个id';具有相同数据属性的,javascript,jquery,Javascript,Jquery,我正在尝试检查多个列表项中的数据属性 我的HTML: <ul id="year"> <li id="2006">2006</li> <li id="2007">2007</li> <li id="2008">2008</li> <li id="2009">2009</li> <li id="2010">2010</li> <li id=
<ul id="year">
<li id="2006">2006</li>
<li id="2007">2007</li>
<li id="2008">2008</li>
<li id="2009">2009</li>
<li id="2010">2010</li>
<li id="2011">2011</li>
<li id="2012">2012</li>
<li id="2013">2013</li>
<li id="2014">2014</li>
</ul>
现在我试图检查是否有任何列表项的“状态”=“打开”
像这样:
if ((jQuery('#year li').data('state') == "on"))
但它似乎不起作用
编辑:所以我尝试了你给我的所有不同的代码片段:它们都不起作用,所以我做了一个简单的for循环,它会在每个列表点本身中查找:
for ( var y = 2006, l = 2015; y < l; y++ )
{
if ((jQuery('#year #'+y).data('state') == "on"))
{
alert('data found');
}
(变量y=2006,l=2015;ylength
属性
var list = jQuery('#year li').filter(function(){
return $(this).data('state') == "on";
//OR, using native dataset
//return this.dataset.state == 'on'
});
if (list.length){
//li with state on exits
}
这对您不起作用的原因是jQuery不在“标准”元素数据集中存储数据值。您可以通过自己这样做来实现您的目标:
$(“#李年”)。单击(函数(){
this.dataset.state=this.dataset.state=='off'?'on':'off';
如果($('year li[data state=“on”]”)。长度>0){
警报('找到!')
}
});
#年份li[data state=“on”]{
颜色:蓝色;
}
2006年
2007年
- 2008
2009年
- 2010年
2011年
- 2012年
- 2013年
2014年
jQuery(“#year li”)将返回jQuery对象数组
您需要循环每个一个
$('#year li').each(function () {
if ((jQuery(this).data('state') === "on")){
alert("on state found");
}
});
可能值得指出DOM方法:this.dataset.state=='on'
您可以添加一个代码段吗?您的函数返回这个:[Object Object]@Aztekke,Yes filter返回jQuery对象,您需要检查其长度
属性长度为“0”不管状态是off还是OND,你注意到我的答案了吗?这不是你想要的吗?是的,我看到了你的答案,但这对我来说太复杂了!但我发现了一个简单的解决方案,它的工作原理是一样的。好吧,由你决定。这只是一行代码,也许可以再看一次(其他所有的都是样板,以展示它的工作原理)@阿米特,看这行文字对我来说没有意义:this.dataset.state=this.dataset.state=='off'?'on':'off';然后读。
$('#year li').each(function () {
if ((jQuery(this).data('state') === "on")){
alert("on state found");
}
});