标题:html 中的双引号和单引号的问题
只看楼主
weitang
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:8
专家分:100
注 册:2009-8-4
结帖率:100%
已结贴  问题点数:20 回复次数:2 
html 中的双引号和单引号的问题
<html>
<body>
<script>
function test(str){
  alert(str);
}

function mytest(){
  var str = "'";
  var htm = "<input type=\"button\" value=\"test\" onclick=\"test('"+str+"')\" />";
  alert(htm);
  document.getElementById("testdiv").innerHTML=htm;
}
</script>
<div id="testdiv"></div>
<button type="button" onclick="mytest()">hello</button>
</body>
</html>

当点击hello按钮后,再点test按钮会报错,因为mytest函数中的str变量有单引号,我把str中的单引号用什么转义符替换才能正确运行?

上面的写法,如果改成
var htm = "<input type=\"button\" value=\"test\" onclick=test(\""+str+"\") />";
去掉了onclick=后面的双引号,因该就不会有错。
如果str中有双引号的话,还要把str中的双引号替换成&quot;,但是这么做一来很麻烦,二来也不符合w3c的标准。

在IE中,我做了个试验
<script>
  function test(){
      document.getElementById("btn").value="\"";
      alert(document.getElementById("btn").outerHTML);
      document.getElementById("btn").value="'";
      alert(document.getElementById("btn").outerHTML);
      document.getElementById("btn").value="\"'";
      alert(document.getElementById("btn").outerHTML);
  }
</script>
<input id="btn" type="button" value="aaaa" onclick="test()" />
浏览去打出的html属性都一般都不带双引号,如果value中有单引号,他就在外面加双引号,如果value中有双引号,他就在外面加单引号,如果既有双引号也有单引号,他就把双引号用转义&quot;代替,外面加双引号。
他自己倒是处理的很好。

[[it] 本帖最后由 weitang 于 2009-8-4 17:08 编辑 [/it]]

[ 本帖最后由 weitang 于 2009-8-14 09:30 编辑 ]
搜索更多相关主题的帖子: 单引号 html 
2009-08-04 16:57
Fieldens
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:25
专家分:42
注 册:2009-7-30
得分:14 
\'
2009-08-04 20:28
weitang
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:8
专家分:100
注 册:2009-8-4
得分:0 
还是不行,试一下就知道了,除非你把str写成\\',但是这也太。。。。。
2009-08-14 09:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-281556-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.181998 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved