Javascript jQuery每个函数,跳过一个特定的元素
我尝试使用jQuery的每个函数: 我有一个列表,我想为不同的列表元素执行不同的javascriptJavascript jQuery每个函数,跳过一个特定的元素,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我尝试使用jQuery的每个函数: 我有一个列表,我想为不同的列表元素执行不同的javascript 以下是html代码: <ul id="list-with-stuff"> <li class='non-stuff'>foo</li> <li>bar</li> </ul> 请在JSFIDLE上查看以下内容: 我遇到的问题是无法确定选择了哪个列表元素,因此无法运行不同的javascript。例如,我想
以下是html代码:
<ul id="list-with-stuff">
<li class='non-stuff'>foo</li>
<li>bar</li>
</ul>
请在JSFIDLE上查看以下内容:
我遇到的问题是无法确定选择了哪个列表元素,因此无法运行不同的javascript。例如,我想为列表中的第一个元素运行“TRUE”警报,但它仅在当前状态下运行“FALSE”警报 我知道这一定是可能的,但是我对Javascript和jQuery缺乏经验,也无法通过搜索互联网来解决问题 使用上述代码,如果您使
ul
具有类'non-stuff'
,则它会输出“TRUE”警报消息,否则会弹出“FALSE”警报
因此,如果你知道最好的实践方法,那么我渴望听到你的答案。特别是如果它能帮助我学习Javascript:-)
谢谢。看起来你把你的
和混在一起了。你很接近
如果希望插件在
上运行,请进行以下修改:
jQuery.fn.stuffplaylist = function() {
return this.children('li').each(function() {
if ($(this).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
}
else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
};
您可以通过从选择中删除不需要的元素来进一步完善此功能
jQuery.fn.stuffplaylist = function() {
return this.children('li.non-stuff').each(function() {
//$(this).text() -> 'foo'
alert("TRUE. Has non-stuff class");
return true;
});
};
看起来你把你的
和
搞混了。你很接近
如果希望插件在
上运行,请进行以下修改:
jQuery.fn.stuffplaylist = function() {
return this.children('li').each(function() {
if ($(this).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
}
else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
};
您可以通过从选择中删除不需要的元素来进一步完善此功能
jQuery.fn.stuffplaylist = function() {
return this.children('li.non-stuff').each(function() {
//$(this).text() -> 'foo'
alert("TRUE. Has non-stuff class");
return true;
});
};
只需修改选择器,使其在本例中查看子对象
return $('#list-with-stuff li').each(function() {
if ($(this).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
}
else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
只需修改选择器,使其在本例中查看子对象
return $('#list-with-stuff li').each(function() {
if ($(this).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
}
else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
现在,您似乎正在一个数组中循环,该数组只包含一个列表。试着这样做:
$(document).ready(function() {
$("#list-with-stuff li").each(function(index, element){
if ($(element).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
} else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
});
现在,您似乎正在一个数组中循环,该数组只包含一个列表。试着这样做:
$(document).ready(function() {
$("#list-with-stuff li").each(function(index, element){
if ($(element).hasClass('non-stuff')) {
alert("TRUE. Has non-stuff class");
return true;
} else {
alert("FALSE. Has not got non-stuff class");
return false;
};
});
});
“如何确定选择了什么列表元素”,您所说的“选择”是什么意思?对不起。每个
函数都会遍历我传递的对象中的所有元素,对吗?因此,我所说的选定对象是指循环当前使用的对象。$(this)
是循环中当前使用的对象。如果您指的是文本foo或bar,请查看.innerHTML()或.innerText()“如何确定选定的列表元素”,您所说的选定对象是什么意思?对不起。每个
函数都会遍历我传递的对象中的所有元素,对吗?因此,我所说的selected是指循环当前使用的对象。$(this)
是循环中当前使用的对象。如果您指的是文本foo或bar,请查看.innerHTML()或.innerText(),这不是您编写插件的方式。这是事实,但据我所知,OP并没有尝试编写插件。无论如何,如果@Stefan就是这个意思,那么这段代码并不能解决问题。选择器仍然只匹配列表,而不匹配其子项。@Igor:他是。也许你应该研究一下jQuery文档中关于如何编写插件的内容。@Greg:这显然不是OP的意图,请列举一个可以这样做的插件。我已经写了很多,用过很多,几乎所有的都是根据你的选择来做的。这是以插件形式编写代码的一部分好处——与编写接受ID的小函数不同,您可以使用CSS选择器的全部功能。我不确定你是否理解这个问题域。这不是你编写插件的方式。这是真的,但就我所见,OP并没有试图编写插件。无论如何,这段代码并不能解决问题,如果@Stefan就是这个意思的话。选择器仍然只匹配列表,而不匹配其子项。@Igor:他是。也许你应该研究一下jQuery文档中关于如何编写插件的内容。@Greg:这显然不是OP的意图,请列举一个可以这样做的插件。我已经写了很多,用过很多,几乎所有的都是根据你的选择来做的。这是以插件形式编写代码的一部分好处——与编写接受ID的小函数不同,您可以使用CSS选择器的全部功能。我不太确定你是否理解这个问题域。这种优化是无用的,因为他想对所有元素采取行动,只是对非物质元素采取不同的行动。这种优化是无用的,因为他想对所有元素采取行动,只是对非物质元素采取不同的行动。