Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:addClass,用于列表的每个.next()元素_Jquery_Html_Addclass_Next - Fatal编程技术网

jQuery:addClass,用于列表的每个.next()元素

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")

我试图使用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")
            .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