为了账号安全,请及时绑定邮箱和手机立即绑定

请问大佬为什么只能转换一次啊?头皮发麻!!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

<script type="text/javascript">

      function replaceMessage(){

         var Ier=document.createElement("i");

         var Ber=document.createElement("b");

var Old=document.getElementsByTagName("div")[0].firstChild;

var OldHTML=Old.innerHTML ;

if(Old.tagName=="b"||"B"){

   Old.parentNode.replaceChild(Ier,Old);

   Ier.innerHTML=OldHTML ;

}

else if(Old.tagName=="i"||"I"){

   Old.parentNode.replaceChild(Ber,Old);

   Ber.innerHTML=OldHTML;

}

       }

  </script>

</head>

<body>

<div><b>JavaScript是一个很常用的技术,为网页添加动态效果。</b></div>

<br/>

<input type="button" value="加粗和斜体转换" onclick="replaceMessage()"/>

</body>

</html>


正在回答

1 回答

"=="运算符的优先级比"||"高!

你写的if语句的条件是 if(Old.tagName=="b"||"B") ,而字符串"B"等价于boolean的true,所以这个判断条件总是返回true。根本不会进行到else if()的分支。

应该写成:

if(Old.tagName=="b"||Old.tagName=="B")。

else if(Old.tagName=="i"||Old.tagName=="I")。

其他都没问题。

0 回复 有任何疑惑可以回复我~
#1

加了椰子汁的冰 提问者

多谢大佬解惑,果然都是细节要命
2018-08-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问大佬为什么只能转换一次啊?头皮发麻!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信