0

如何根据类别获取第一个ID

<ul>
    <li id="1" category="A">One</li>
    <li id="2" category="A">Two</li>
    <li id="3" category="B">Three</li>
    <li id="4" category="B">Four</li>
</ul>

从上面的代码我可以得到第一个 id

$('ul').find('li:first').attr('id');

假设我想根据类别获取第一个 id,如何获取?就我而言,我想获得 B 类的第一个 ID。(ans has to be 3

4

5 回答 5

1
$('ul').find('li[category=B]').first().attr('id');

或者

$('ul li[category=B]:first').attr('id')

无论您喜欢哪种风格(取决于您的代码)

于 2012-11-08T07:30:19.880 回答
1
$('ul li[category="A"]:eq(0)').attr('id');

或者

$('ul li[category="A"]:first').attr('id');

或者

$('ul li[category="A"]:nth-child(1)').attr('id');

注意: :eq()从 0:nth-child()开始,从 1 开始

看演示

于 2012-11-08T07:33:30.493 回答
1
 $("#id of ul").children(":first");

或者

 $("ul li:first").attr("id")
于 2012-11-08T07:36:18.477 回答
1

一个类别总是有一个ID吗?如果不:

$('ul').find('li[category=B][id]:first').attr('id');

JSbin 示例

您应该为类别使用 HTML 数据属性以获得更有效的标记

于 2012-11-08T07:36:47.277 回答
1

试试这个

$('ul').find('li[category="B"]').first().attr('id');

另请注意,您的 HTML 将不会被验证,因为您没有使用默认属性。而是尝试使用 将验证您的标记的数据属性。

<ul>
    <li id="1" data-category="A">One</li>
    <li id="2" data-category="A">Two</li>
    <li id="3" data-category="B">Three</li>
    <li id="4" data-category="B">Four</li>
</ul>​

$('ul').find('li[data-category="B"]').first().attr('id');

检查小提琴

于 2012-11-08T07:36:59.037 回答