我需要使用与位置相关的JS提取HTML子串。我存储HTML编码的特殊字符。
例如:
HTML
<div id="test"><p>lösen & grüßen</p></div>
文字
lösen & grüßen
我的问题在于JS部分,例如当我尝试提取片段时
lö
,其{:1}}的HTML依赖起始位置和3
块内9
的结束位置。 JS似乎在内部转换了一些特殊字符,因此从<div>
到3
的计数被错误地解释为“9
”而不是“lösen
”。 lö
等其他特殊字符不受此影响。
所以我的问题是,如果有人知道为什么JS会以这种方式行事?正在转换&
或ä
等字符,而ö
或&
等字符是普通的。有没有可能避免这种转变?
我已经设置了一个小提琴来证明这一点:JSFiddle
感谢您的帮助!
修改
也许我已经解释过有点混乱,对不起。我想要的是HTML:
。
除HTML-Tags外,每个特殊字符都应该是未转换的。就像上面的HTML一样。
但是JS会自动将<p>lösen & grüßen</p>
或ö
转换为ü
或ö
,这是我需要避免的。
答案 0 :(得分:2)
这是因为浏览器(而不是JavaScript)将不需要在HTML中转义的实体转换为各自的Unicode字符(例如,它跳过&
,<
和>
)。
因此,当您检查.innerHTML
时,它不再包含原始页面源中的确切内容;你可以改变这个过程,但它涉及到完整的角色<->
实体对映射,这是不切实际的。
答案 1 :(得分:0)
如果我理解正确,那么尝试在目标元素上使用innerHTML或.html('你的html代码')进行jQuery