如何通过属性JQuery在列表元素中查找

时间:2014-04-29 18:37:35

标签: javascript jquery html asp.net find

我有这个结构

HTML

<div>
<ul id="categories">
<asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound">
<ItemTemplate>
    <li><asp:LinkButton ID="linkbutton" runat="server" href="javascript:void(0);"/></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>

代码

protected void repeater_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item ||
        e.Item.ItemType == ListItemType.AlternatingItem)
    {
        LinkButton linkbutton = (LinkButton)e.Item.FindControl("linkbutton");
        lnkCategoryName.Attributes.Add("data-category", ((ProductCategory)e.Item.DataItem).Description);
    }
}

检查开发人员工具中的元素

<ul id="categories">
<li><a id="cphContents_repeater_linkbutton_0" href="javascript:void(0);" data-category="TestValue">Value 1</a></li>
<li><a id= ....

我想要的是在Jquery中获取具有data-category属性的准确锚点,但我现在不能这样做。

我在开发者工具的控制台中试过这个

$('#categories > li').children()

它给了我所有LI的所有锚点元素但是我想只选择我感兴趣的那个。

当我执行以下行时,控制台返回方括号。帮助!

$('#categories > li').children().find('a[data-category=TestValue]')

2 个答案:

答案 0 :(得分:1)

使用$('#categories > li').find('a[data-category="TestValue"]')

小提琴:http://jsfiddle.net/juvian/VDAgS/

答案 1 :(得分:1)

检查http://jsfiddle.net/yvanavermaet/98K2G/1/

HTML:

<ul id="categories">
    <li><a id="cphContents_repeater_linkbutton_0" href="javascript:void(0);" data-category="TestValue">Value 1</a></li>
    <li><a id="cphContents_repeater_linkbutton_1" href="javascript:void(0);">Value 2</a></li>
    <li><a id="cphContents_repeater_linkbutton_2" href="javascript:void(0);">Value 3</a></li>
 </ul>

JS:

var a = $("#categories > li > a[data-category='TestValue']");
alert(a.length); // this will alert "1"