我有这个结构
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]')
答案 0 :(得分:1)
使用$('#categories > li').find('a[data-category="TestValue"]')
答案 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"