jQuery:addClass,用于列表的每个.next()元素
我试图使用jQuery为每个Span元素添加不同的类,使用.next() 这是javascript:jQuery:addClass,用于列表的每个.next()元素,jquery,html,addclass,next,Jquery,Html,Addclass,Next,我试图使用jQuery为每个Span元素添加不同的类,使用.next() 这是javascript: <script type="text/javascript"> $(function() { $("a", "div.top_menu").addClass("ui-icons-custom"); $("span.ui-icon:first", "ul.top_menu_list").addClass("ui-icon-pencil")
<script type="text/javascript">
$(function() {
$("a", "div.top_menu").addClass("ui-icons-custom");
$("span.ui-icon:first", "ul.top_menu_list").addClass("ui-icon-pencil")
.next().addClass("ui-icon-comment")
.next().addClass("ui-icon-key");
});
</script>
$(函数(){
$(“a”,“div.top_菜单”).addClass(“用户界面图标自定义”);
$(“span.ui图标:第一”,“ul.top\u菜单列表”).addClass(“ui图标铅笔”)
.next().addClass(“ui图标注释”)
.next().addClass(“ui图标键”);
});
这是我试图让它工作的HTML:
<div class="top_menu ui-state-default-custom">
<ul class="ui-widget top_menu_list">
<li>
<span style="float: left;" class="ui-icon-text-custom"><span style="float: left;" class="ui-icon"></span>
<a href="test">Registrarse</a>
</span>
</li>
<li>
<span style="float: left;" class="ui-icon-text-custom"><span style="float: left;" class="ui-icon"></span>
<a href="test1">Agregar un anuncio</a>
</span>
</li>
<li>
<span style="float: left;" class="ui-icon-text-custom"><span style="float: left;" class="ui-icon"></span>
<a href="test2">Ingresar (Login)</a>
</span>
</li>
</ul>
</div>
-
-
-
因此,它应该使用带有.ui图标类的第一个“span”元素并添加一个类,然后从列表中选择下一个元素并添加其他类。看看CSS3 psuedo类
$('li:odd span.ui-icon')
jQuery支持它们:.next()查找所选元素的下一个直接同级。在您的情况下,您选择的跨度有一个锚点作为它的下一个同级,然后什么都没有。您必须使用parent(“li”)返回到父li,使用next()返回列表中的下一个li,然后使用find(“span”)返回所讨论的span
选择所有跨距,然后分别编辑每个跨距可能更容易,可读性也更高,例如:
$(function() {
$("a", "div.top_menu").addClass("ui-icons-custom");
var $spans = $("span.ui-icon", "ul.top_menu_list");
// end() reverts us back to the selector before each eq()
// you can just make this three separate statements if you like
$spans.eq(0).addClass("ui-icon-pencil").end()
.eq(1).addClass("ui-icon-comment").end()
.eq(2).addClass("ui-icon-key");
});
呃,出于好奇,是什么阻止了您直接将类添加到元素中,而不是使用jQuery