請問大佬為什么只能轉換一次???頭皮發麻??!
<!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>
2018-08-06
"=="運算符的優先級比"||"高!
你寫的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")。
其他都沒問題。