1

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

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

这给了我最后一个 li id,但我不知道怎么说:获取最后一个 li id,其中 id 不是例如:你好

4

5 回答 5

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>

谢谢

于 2013-09-25T07:08:53.137 回答
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);
于 2013-09-25T05:15:52.097 回答
1

如果你使用 jquery:

$('li:last');

纯js:

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

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

更新 我在这里测试它是一个 jsFiddle:jsFiddle

于 2013-09-25T05:16:10.857 回答
0

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

于 2013-09-25T05:39:11.520 回答
-1
var arr = document.getElementById('li_hold').querySelectorAll('li:not(#hello)");
var last_li = arr[arr.length - 1];

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

于 2013-09-25T05:11:00.883 回答