gpt4 book ai didi

javascript - 使用 jQuery.attr() 转义属性值

转载 作者:技术小花猫 更新时间:2023-10-29 12:45:42 25 4
gpt4 key购买 nike

当使用 jQuery 更新元素的 title 属性时,我发现实体(特别是 ,这是目前推荐的添加行的方式title 属性中的中断)无法正确显示(实体显示为文本,未被解析……)。

例如:

<!-- This works fine -->
<div title="foo&#10;bar">baz</div>

但是这个:

<div>baz</div>
<script>
$("div").attr('title', 'foo&#10;bar'); // Escapes the &
</script>

有没有办法让 jQuery 不对值进行转义?我尝试在 .attr() 之前使用 unescape(),但它没有用……

最佳答案

jQuery 没有转义任何内容,实际上您的字符串已按字面意思设置为标题。你可以只需使用:

$("div").attr('title','foo\nbar')

http://jsfiddle.net/t5DvY/


转义的含义似乎有很多误解。你所做的是完全没有必要的。

只有在字符具有特殊含义而您不希望它具有任何特殊含义的上下文中才需要转义。

比如在html解析器眼中,<很特别。您必须将其替换为 &lt;如果你想确保它被视为文字 < .在html解析器眼中强调。在 javascript 中,<无论如何在字符串中都不是特别的,因此你可以做 elem.setAttribute("title", '""><b>hi</b>')这就是你得到的,元素的标题字面意思是 ""><b>hi</b> .

至于html代码点引用,一般没什么用。您可以简单地使用文字字符。而不是写 &#x2665; ,你可以简单地写 .而不是写 &#x00F6; , 你可以简单地写 ö .这是 http://jsfiddle.net/fnqDn/2/ .

关于javascript - 使用 jQuery.attr() 转义属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11591174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com