尝试仅获取 <option> 元素时发生 jQuery 未定义错误

标签 jquery

我的 html 带有 <select>标签和<option>标签。我以这种方式获得某个选项/值:

$(targetElement).children("option[text=" + Text + "]").val();

哪里targetElement是我的<select>元素和Text是我要查找的选项的文本。

select中有多个选项时,这可以正常工作。 ( on jsFiddle ),但是当只有一个选项时,我得到 undefined (on jsFiddle)!

谁能告诉我为什么当只有一个选项时它不起作用,以及如何解决它?

最佳答案

[name=value] 语法旨在检查元素的属性。例如,它将用于匹配 FooInAttribute,但不匹配下面的 FooInContents。

<option value="42" text="FooInAttribute">FooInContents</option>

我无法告诉你为什么当有多个 <option> 时它会起作用标签可用,但是 :contains 在这两种情况下都有效。请尝试这样做,但正如 InviS 所指出的,这假设列表中没有选项包含另一个选项的全文(即,如果您有一个名为“汉堡”的选项,则不得有另一个“汉堡和薯条”):

$(targetElement).children("option:contains('" + text + "')").val();

关于尝试仅获取 <option> 元素时发生 jQuery 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126410/

相关文章:

Javascript从另一个网站的源代码中查找html元素的问题

jquery - MaximumSelectionSize 在 Select2 中不起作用

javascript - 检查一个元素是否具有一个类与另一个类总是返回 true

javascript - javascript中有没有一种方法可以检测元素是否附加了任何事件?

javascript - 将 jQuery.ajaxSetup 范围限制在特定对象内

javascript - Mustache ,遍历 JSON 对象

jquery - 如何在此脚本中设置 offset() 100px ?

javascript - Jquery next() 问题

javascript - 在 Twitter Bootstrap 主题之间切换?

jquery - 可访问性问题 - 链接不会跳转或展开以显示隐藏内容