从ul获取最后一个子节点li,其中子ID不是特定值

时间:2013-09-25 05:02:32

标签: javascript

我需要获取最后一个li元素的id,其中li id不是特定的单词

var lastChildID = document.getElementById("li_hold").lastChild.id

这给了我最后一个li id,但我不知道怎么说:得到最后一个li id,其中id不是例如:hello

5 个答案:

答案 0 :(得分:3)

你可以像这样获得ul li的最后一个id

var id = $("ul#list li:last-child").attr("id");
if(id!="hello"){
    alert(id);
}

<ul id="list">
    <li id="foo">1</li>
    <li id="foo1">2</li>
    <li id="foo2">3</li>
    <li id="foo3">4</li>
    <li id="foo4">5</li>
    <li id="foo5">6</li>
</ul>

由于

答案 1 :(得分:1)

您可以执行以下操作

var list = document.getElementById('list').children;
var lastLI;
var idNotEqual = 'foo3'; // put your not equal ID here
for(var i = 0; i < list.length; i++){
    if(list[i].id != idNotEqual){
        lastLI = list[i];
    }
}
console.log(lastLI);

示例HTML:

<ul id="list">
    <li id="foo">1</li>
    <li id="foo1">2</li>
    <li id="foo2">3</li>
    <li id="foo3">4</li>
    <li id="foo4">5</li>
    <li id="foo5">6</li>
</ul>

编辑:

更有效的方式:

var list = document.getElementById('list').children;
var lastLI;
var idNotEqual = 'foo3';
for(var i = list.length-1; i > 0; i--){
    if(list[i].id != idNotEqual){
        lastLI = list[i];
        break;
    }
}
console.log(lastLI);

答案 2 :(得分:1)

如果你使用jquery:

$('li:last');

纯js:

var lis = document.getElementsByTagName('li');
var li = lis[lis.length-1]; // get the last li

看看它是否有效(目前尚未经过测试)

<强>更新 我在这里测试的是一个jsFiddle:jsFiddle

答案 3 :(得分:0)

试试这个:$('li:not(#hello):last')

答案 4 :(得分:-1)

var arr = document.getElementById('li_hold').querySelectorAll('li:not(#hello)");
var last_li = arr[arr.length - 1];

编辑:以前这是返回第一个元素。如上所述,这不适用于某些旧版浏览器(http://caniuse.com/queryselector)。