我有一个简单的HTML
<p id="skills">Skills</p>
Run Code Online (Sandbox Code Playgroud)
在Firefox 3.6.3中调用(使用JQuery):
$("#skills")[0].innerHTML = "some new text"
Run Code Online (Sandbox Code Playgroud)
Firefox将其呈现为
<p id="skills"><a xmlns="http://www.w3.org/1999/xhtml">some new text</a></p>
Run Code Online (Sandbox Code Playgroud)
世界上哪个地方的链接来自??
(注意通过$("#skills").html("some new text")使用JQuery 调用同样的事情)
它不是Firefox中的一个错误,你首先要<a></a>在那里获得一个额外的...我会禁用你所有的插件并再试一次,你安装的具体内容会干扰这里.
我假设您正在使用Firebug查看此内容,您上面提供的确切示例(页面中没有其他内容)是否也执行相同的操作?你可以在这里试一试:http://jsfiddle.net/Wcjk9/
您的示例确实在Firefox中显示了一些奇怪的行为,但是 "允许"这样做.由于您的HTML无效,浏览器可以并且确实在这里提供一些时髦的行为.浏览器中的解析器/脚本引擎可以自由地假设您拥有有效的HTML,例如唯一ID.如果您的HTML无效,那么......它不能承担责任.我必须包括这个引用:
有两次我一直在问,"祈祷,巴比奇先生,如果你投入的机器数据错了,将正确的答案出来了?" 我无法正确地理解可能引发这样一个问题的那种想法混乱.
忽略jsbin添加的错误,您可以在此处看到问题(第一个验证错误).不允许在锚点内部使用块元素.您可以拥有一个内联元素,如果您<p>在示例中替换为<span>您将拥有有效的HTML ...并且这种奇怪的行为消失了:)
事实证明,我的示例代码排除了实际问题的部分,这是一个显示问题的工作示例页面。当您更改链接中任何元素的 html 时,它会将所有文本包装为
<a xmlns="http://www.w3.org/1999/xhtml">THE TEXT</a>
在我的演示中,当您单击“测试”链接时,它会将技能中的 html 替换为:
<a xmlns="http://www.w3.org/1999/xhtml">some new text</a>
Run Code Online (Sandbox Code Playgroud)
这可能不是一个“错误”,但 Firefox 似乎是唯一这样做的浏览器。
<html>
<head>
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
function test() {
$("#skills")[0].innerHTML = "some new text"
}
</script>
</head>
<body>
<a href="#" onclick="test()">test</a>
<a href="http://google.com">
<p id="skills">Skills</p>
</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |