Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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
Javascript 将类添加到生成ul列表中的最后2个链接_Javascript_Html_Css - Fatal编程技术网

Javascript 将类添加到生成ul列表中的最后2个链接

Javascript 将类添加到生成ul列表中的最后2个链接,javascript,html,css,Javascript,Html,Css,我有一个生成无序链接列表的函数,我想使用javascript选择最后两个链接,这样我就可以将它们向右对齐 因此,在下面的示例中,我需要选择link4和link5的li父对象,然后添加一个类,以便对其进行样式设置 <ul> <li>link1</li> <li>link2</li> <li>link3</li> <li>link4</li> <li>link5</li>

我有一个生成无序链接列表的函数,我想使用javascript选择最后两个链接,这样我就可以将它们向右对齐

因此,在下面的示例中,我需要选择link4和link5的li父对象,然后添加一个类,以便对其进行样式设置

<ul>
<li>link1</li>
<li>link2</li>
<li>link3</li>
<li>link4</li>
<li>link5</li>
</ul>
  • 链接1
  • 链接2
  • 链接3
  • 链接4
  • 链接5
最后应该是这样的:

<ul>
<li>link1</li>
<li>link2</li>
<li>link3</li>
<li class="align_right">link4</li>
<li class="align_right">link5</li>
</ul>
  • 链接1
  • 链接2
  • 链接3
  • 链接4 链接5

在构建列表时,您不能为最后两个链接生成class=“align\u right”吗

顺便说一下,如果您想通过javascript实现这一点,您可以:

//get the sidebarmenu element
var sidebar = document.getElementById('sidebarmenu');

//getting the ul inside the wrapper
var ul = sidebar.getElementsByTagName("ul")[0];

//getting al the li childs
var li = ul.getElementsByTagName("li");
var totLi = li.length;

if(totLi >= 2){ //setting class to last 2
    li[totLi-1].className = "align_right";
    li[totLi-2].className = "align_right";
}
编辑:根据您的特殊需要进行更新

运行示例:

在构建列表时,您不能为最后两个链接生成class=“align\u right”吗

顺便说一下,如果您想通过javascript实现这一点,您可以:

//get the sidebarmenu element
var sidebar = document.getElementById('sidebarmenu');

//getting the ul inside the wrapper
var ul = sidebar.getElementsByTagName("ul")[0];

//getting al the li childs
var li = ul.getElementsByTagName("li");
var totLi = li.length;

if(totLi >= 2){ //setting class to last 2
    li[totLi-1].className = "align_right";
    li[totLi-2].className = "align_right";
}
编辑:根据您的特殊需要进行更新

运行示例:

在Jquery中:

$('ul li:last-child').prev('li').andSelf().addClass("align_right");
在Jquery中:

$('ul li:last-child').prev('li').andSelf().addClass("align_right");

这最好在生成这些项的函数中完成,如果之后坚持使用客户端脚本,则如下所示:

var oList = document.getElementById("myList");
var arrItems = oList.getElementsByTagName("li");
if (arrItems.length >= 2) {
    arrItems[arrItems.length - 2].className = "align_right";
    arrItems[arrItems.length - 1].className = "align_right";
}

为此,请将ID添加到
标记并使用它,

最好在生成这些项的函数中完成此操作,如果之后坚持使用客户端脚本,则如下所示:

var oList = document.getElementById("myList");
var arrItems = oList.getElementsByTagName("li");
if (arrItems.length >= 2) {
    arrItems[arrItems.length - 2].className = "align_right";
    arrItems[arrItems.length - 1].className = "align_right";
}

要想让它发挥作用,请将ID添加到
标签并使用它,

该网站实际上是一个供不同客户使用的全球cms系统,我不能只更改核心文件。我需要创建一个自定义的视图脚本,但我还没有弄明白,这就是为什么我问现在是否有一个简单快捷的javascript修复程序可以使用。@Studeb我无法通过id获得ul,但不幸的是,它不是页面上唯一的ul。它有一个导航类,封装在一个带有id侧边栏菜单的div中。我看到你修改了代码,你能给explian添加一些注释吗?thanks@steweb太棒了,非常感谢,它工作得非常完美,但我能要求一个小的修改吗?子菜单中的最后3个链接是“链接”、“foto”和“video”(中间)是否可以检查这些特定链接并最终为其设置一个类?@krike不客气!等待:是否要检查链接是否包含特定文本?或者你只想检查一个特定的
  • 是否有孩子,如果有,你必须给
  • 那个班。。?在我的示例中,完成标记并向我解释您想要获得的内容;)@我想检查一个链接是否有特定的文本,然后将该链接添加到一个类中,但这种修改并不迫切。该网站实际上是一个由不同客户使用的全球cms系统,我不能只更改核心文件。我需要创建一个自定义的视图脚本,但我还没有弄明白,这就是为什么我问现在是否有一个简单快捷的javascript修复程序可以使用。@Studeb我无法通过id获得ul,但不幸的是,它不是页面上唯一的ul。它有一个导航类,封装在一个带有id侧边栏菜单的div中。我看到你修改了代码,你能给explian添加一些注释吗?thanks@steweb太棒了,非常感谢,它工作得非常完美,但我能要求一个小的修改吗?子菜单中的最后3个链接是“链接”、“foto”和“video”(中间)是否可以检查这些特定链接并最终为其设置一个类?@krike不客气!等待:是否要检查链接是否包含特定文本?或者你只想检查一个特定的
  • 是否有孩子,如果有,你必须给
  • 那个班。。?在我的示例中,完成标记并向我解释您想要获得的内容;)@我想检查一个链接是否有特定的文本,然后将该链接添加到一个类中,但这种修改并不迫切。谢谢你的anwser,但不幸的是jQuery不是这里的选项。谢谢你的anwser,但不幸的是jQuery不是这里的选项。