【问题标题】:attributes not found by jquery attribute selectorjquery 属性选择器找不到属性
【发布时间】:2009-04-14 01:11:38
【问题描述】:

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

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

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

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

再次感谢!


编辑: 似乎没有人相信某些选择器不能按预期工作。看这个例子: 在this site(上面有 jquery 1.3 用于萤火虫)有一个看起来像这样的表单:

<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");

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

【问题讨论】:

  • 请不要不要重新提出您的问题。只需编辑您的旧版本。如果你真的觉得这很有用,那会碰到它。
  • 我不知道 - 以后会这样做
  • 没关系,不用担心。如果此问题为您提供了解决方案,您可能需要编辑旧问题以链接到该问题,然后请人们投票支持关闭旧问题。
  • 我已经尝试删除它。我不能:这个问题不能被删除 - 至少有一个答案投票赞成

标签: jquery attributes css-selectors css


【解决方案1】:

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

这里是公开的门票:

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

我建议只为表单/图像提供一个类/ID 并完成它。

【讨论】:

  • 谢谢,这是我要找的信息
【解决方案2】:

这完全取决于您使用的 jQuery 版本。

在 1.3 之前,您可以使用 @ 表示法:

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

所以也许添加 @ 会有所帮助。

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

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

因为它将尝试查找 src equal 到“dog.jpg”的图像,而不包含它。

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

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

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

【讨论】:

  • 我升级了我的 jquery,现在属性选择器(第二个示例)不再起作用。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2020-11-07
  • 2010-10-19
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
相关资源
最近更新 更多