【问题标题】:jquery not selecting option tags when value contains space当值包含空格时,jquery不选择选项标签
【发布时间】:2009-11-05 19:21:37
【问题描述】:

使用 jquery 选择包含/查找时,是否需要以某种方式转义空格?

我在嘲笑这个,所以请原谅错别字...... 如果我有一个包含一些选项的 SELECT 标记

<select title="animals">
<option value="Dog Black">Dog Black</option>
<option value="Cat Black">Cat Black</option>
<option value="Dog Brown">Dog Brown</option>
</select>

我正在尝试使用 jquery 在此选择中查找选项。但是当传递给 search 的值包含空格时,“find”方法或“contains”函数似乎失败了。例如:

以下返回大小为 2:

$('*[title="animals"]').find("option:contains('Dog')").size()

但这会返回 0,而我也期望 2:

$('*[title="animals"]').find("option:contains('Dog B')").size()

我的猜测是这与选择器有关,它正在寻找带有“B”之类的子元素,但我不太确定。

【问题讨论】:

  • 是 1.2.6 版本的 jquery 中的一个错误,在 1.3.2 上工作正常...对不起:)
  • 我遇到了类似的问题。我在下拉列表中混合了带有和不带空格的文本/值。在更改选择时,使用 JavaScript/jQuery 正确检索非空格值,但如果该值有空格,则返回列表中的第一个值,甚至所选索引为 0。这篇文章也讨论了同样的问题 - @ 987654321@
  • 是的,这似乎是一个错误。我找到了解决方案并将其添加到指定站点。

标签: jquery jquery-selectors


【解决方案1】:

我在一个基本上没有其他内容的页面中测试了这个确切的代码,它在我所有浏览器中的两个 find() 函数上都返回 2。也许您的代码中还有其他东西干扰了您的结果?也许您将结果存储在某处并忘记了该值,或者将其覆盖?

或者您可能已经发现了问题所在。 :p

【讨论】:

  • 感谢测试 这是jquery 1.2.6版本的bug。 1.3.2 工作正常。我会感谢你的帮助:)
【解决方案2】:

抱歉,在我敲了几个小时之后,我在发布导致问题的代码后在代码的其他地方发现了一个错误,将其关闭

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2011-12-14
    • 2012-09-09
    • 2016-11-12
    相关资源
    最近更新 更多