我需要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");
当然,我可以做通配符,这不是我想要的。
答案 0 :(得分:11)
没有不受支持的属性的“列表”,因为不应该;这是jQuery中的一个错误。
这是打开的门票:
显然,错误之间的共同点是jQuery将您指定的选择器字符串与完整URL进行比较,而不是在HTML中定义的实际action / src属性。这解释了为什么attributeEndsWith或attributeContains选择器在这种情况下有效。
我建议只给表单/图像一个类/ 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]")
同样,您可以找到属性以特定值/字符串开头或结尾的元素。