我有一个包含一系列选项的下拉列表:
<select id=SomeDropdown>
<option value="a'b]<p>">a'b]<p></option>
<option value="easy">easy</option>
<select>
Run Code Online (Sandbox Code Playgroud)
请注意,选项值/文本包含一些讨厌的东西:
我需要删除a'b] <p>选项,但我没有运气写选择器.无论是:
$("#SomeDropdown >option[value='a''b]<p>']");
Run Code Online (Sandbox Code Playgroud)
要么
$("#SomeDropdown >option[value='a\'b]<p>']");
Run Code Online (Sandbox Code Playgroud)
正在返回选项.
使用"value ="选择器时,转义值的正确方法是什么?
根据jQuery文档,我需要转义在我的选择器字符串中出现的元字符,当它们作为文字出现时.但是,我找不到很多关于何时何时不逃避选择器的具体例子.因此,当我不需要转义元字符时,当它们被解释为文字时,在:
属性选择器?即
$("[attr=value]")
Run Code Online (Sandbox Code Playgroud)
Id选择器?即
$("#id")
Run Code Online (Sandbox Code Playgroud)
班级选择器?即
$(".class");
Run Code Online (Sandbox Code Playgroud)
并且,有没有办法编写一个函数来替换选择器字符串中的metachars,同时仍然保留起始字符?即:
// replace all meta chars, preserving the id selection?
$("#id.rest$of*string")
// replace all meta chars, preserving the attribute selection?
// going back to my previous question, do I even need to escape the metachars in this situation?
$("[attr=blah.dee#foo*yay]")
Run Code Online (Sandbox Code Playgroud)
我问这个问题的原因是因为我正在使用一个恰好有一些非常讨厌的选择器的网站.而且我无法控制网站,因此我无法更改选择器以便更好地使用.
谢谢!!