如何通过包含引号的属性值选择元素?

问题描述 投票:0回答:3

当元素的属性包含引号时,如何使用

querySelector
或任何其他 JavaScript 选择器
"

例如,如果我搜索一个

img
元素,其
src
http://www.example.com/abc"def
(是的,包含引号的属性):

document.querySelector('img[src="http://www.example.com/abc"def"]');

出现此错误:

未捕获的 DOMException:无法在“文档”上执行“querySelector”:“img[src="http://www.example.com/abc"def"]”不是有效的选择器。

显然,我的问题适用于同时使用的单引号

'
和双
"
引号。

javascript escaping double-quotes single-quotes
3个回答
7
投票
var test = document.querySelector('img[src="http://www.example.com/abc\\"def"]');`

使用

\
转义引号似乎有效。


0
投票

你可以像这样使用 \ ,JS 应该识别它是字符串的一部分:

document.querySelector('img[src=\"http://www.example.com/abc\"def\"]');

0
投票

将您的报价替换为

&x22;
:

document.querySelector('img[src="http://www.example.com/abc&x22;def&x22;]');

参考:James Donnelly 的回答如何通过 HTML 代码编写双引号

© www.soinside.com 2019 - 2024. All rights reserved.