Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Javascript 为本身是转义选择器的值创建选择器_Javascript_Jquery_Css Selectors - Fatal编程技术网

Javascript 为本身是转义选择器的值创建选择器

Javascript 为本身是转义选择器的值创建选择器,javascript,jquery,css-selectors,Javascript,Jquery,Css Selectors,守则: <p id='P1"'>Hello World</p> <datalist id="foo"> <option value='#P1\"' /> </datalist> 我试过了 '#P1\"' '#P1\\\"' 当我把“#P1”放在数据列表中时,我成功地用 option[value="#P1"] 我刚刚被困在如何获得如上所示值的答案上。您需

守则:

<p id='P1"'>Hello World</p>
<datalist id="foo">
<option value='#P1\"' />
</datalist>
我试过了

'#P1\"'
'#P1\\\"'
当我把“#P1”放在数据列表中时,我成功地用

option[value="#P1"]

我刚刚被困在如何获得如上所示值的答案上。

您需要双重转义。我就是这样发现的:

//这样看起来怎么样?
console.log(document.querySelector(`foo>选项[value^=''P1']`));
//啊哈!
console.log(document.querySelector(`foo>选项[value='\\\\\\\\\'']`));
//jQuery也是吗?
log($(`foo>option[value=''P1\\\\\\'']`)[0]);
//那么value=”呢\☺"?
console.log(document.querySelector(`foo>option[value=)\\\\☺']`));
//有趣的使用
document.body.appendChild(Object.assign(document.createElement(“div”){
样式:“字体大小:4rem;顶部:-15px;位置:绝对;左侧:5rem;”,
innerHTML:document.querySelector(`foo>option[value='1〕\\\\☺']`).值。切片(1),
} )
);

你好,世界


使用
\
只会转义它之前的任何值,实际上并不“存在”,所以你应该选择
\P1”
我可能会错,谢谢你(+1)。我还在为“双重转义”而挣扎“-这是有道理的,但我必须努力解决它。很高兴我能帮上忙。顺便说一句,这里也一样,这有点奇怪。顺便说一句,经过一些研究:
将允许您使用
选项[value='#P1']
是的,但数据列表中的全部内容都是为了帮助我的用户找到并使用id选择器。因此,选项字段中的编码对他们来说太混乱了。通过这些,你在帮助我考虑是否值得接受这样的id,而不是仅仅标记它们以供用户更正。我现在是这样想的NK后者的风险较低,而支持这样的ID可能会产生很多问题。谢谢!
option[value="#P1"]