jquery属性选择器找不到的属性

时间:2009-04-13 16:41:39

标签: jquery attributes css-selectors css3

我需要reask我的老问题,我可能不应该在凌晨1点问过:P

似乎使用jquery的属性选择器找不到某些属性:

$("*[some=value]");

到目前为止,我似乎无法使用form的action属性和img的src属性。是否有某个属性的列表不起作用,所以我可以为它们编写自定义选择器?

再次感谢!


修改 似乎没有人相信某些选择器不能按预期工作。看看这个例子: 在this site(其上有jquery 1.3 for firebugging),有一个表格如下:

<form style="display: inline;" method="get" action="list">

(围绕'搜索当前下载'下拉菜单)。如果您打开firebug并尝试此选择器:

$("form[action=list]"); 

您将无法选择表格。 action属性没有什么特别之处。该页面上的徽标图像的src也是如此:

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/>

不起作用的选择器是:

$("img[src=/p/aost/logo?logo_id=1238551994");

当然,我可以做通配符,这不是我想要的。

2 个答案:

答案 0 :(得分:11)

没有不受支持的属性的“列表”,因为不应该;这是jQuery中的一个错误。

这是打开的门票:

显然,错误之间的共同点是jQuery将您指定的选择器字符串与完整URL进行比较,而不是在HTML中定义的实际action / src属性。这解释了为什么attributeEndsWithattributeContains选择器在这种情况下有效。

我建议只给表单/图像一个类/ ID,然后用它来结束。

答案 1 :(得分:4)

这完全取决于你正在使用的jQuery版本。

在1.3之前,您可以使用@ notation:

$("*[@name=value]")

所以也许可以添加@帮助。

除此之外,您应该输入与标记中定义的属性值完全相同的属性值 - 例如如果您尝试使用src="http://example.com/dog.jpg"查找图片,请不要这样做,因为它不起作用:

$("img[src=dog.jpg")

因为它会尝试找到src 相等的图像到“dog.jpg”,而不是包含它。

如果您想搜索仅定义其中部分内容的属性,我建议您阅读jQuery API Selectors页面。例如,要获取所有图像whit src 包含“dog.jpg”,您可以使用:

$("img[src*=dog.jpg]")

同样,您可以找到属性以特定值/字符串开头或结尾的元素。

相关问题