Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 要查找的CSS选择器<;选择>;带有指定的<;选项>;标签_Jquery_Html_Xpath_Jquery Selectors_Css Selectors - Fatal编程技术网

Jquery 要查找的CSS选择器<;选择>;带有指定的<;选项>;标签

Jquery 要查找的CSS选择器<;选择>;带有指定的<;选项>;标签,jquery,html,xpath,jquery-selectors,css-selectors,Jquery,Html,Xpath,Jquery Selectors,Css Selectors,我需要一个CSS选择器来选择一个元素,如果它包含一个元素,该元素包含或等于一个指定的文本(两者都符合我的要求)。HTML示例: <select name="foo"> <option value="1">First</option> <option value="2">Second</option> </select> 如果CSS选择器无法实现这一点,我也会接受JQuery或XPath选择器。CSS无法实现这一点

我需要一个CSS选择器来选择一个
元素,如果它包含一个
元素,该元素包含或等于一个指定的文本(两者都符合我的要求)。HTML示例:

<select name="foo">
  <option value="1">First</option>
  <option value="2">Second</option>
</select>

如果CSS选择器无法实现这一点,我也会接受JQuery或XPath选择器。

CSS无法实现这一点

您可以使用这个jQuery选择器(并且不是CSS的一部分):

$(“选择:has(选项:contains('Second')))
或者此XPath表达式:

//select[contains(option, 'Second')]

这可能会有所帮助,最简单的方法是使用选项上的
contains()
选择器

$("select option:contains('Second')")
下面是一个工作示例:

以及不包括value属性的版本:

要获取实际的select元素本身,您只需对上述代码使用
parent()
方法即可:

var selectElement = $("select option:contains('Second')").parent();

下面是一个示例:

您想对元素做什么?浏览器在设置
SELECT
元素的样式时非常有限。我想将此方法与Selenium方法结合起来,自动查找要与之交互的表单元素。需要选择-cough-
SELECT
。不幸的是,包含匹配的子字符串。我需要匹配值exactly@ladieu:
//选择[option='Second']
如果使用jQuery,则需要手动编写回调来测试该值。
$("select option:contains('Second')")
var selectElement = $("select option:contains('Second')").parent();