加了椰子汁的冰
2018-08-04 15:18
<!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>
"=="运算符的优先级比"||"高!
你写的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")。
其他都没问题。
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题
回答 1