2016-09-20 76 views
0

您好我有兩個函數在js中取代了DOM的屬性,既有「Practitioner」或「Patient」,但它正在進入循環和條件但沒有得到改變。如何在JavaScript中更改DOM的innerHTML

function ReplaceInnerHtml(el, type, replaceTo) { 
    if (el != "" && el != null) { 
    if (type == "Practitioner") { 
     el.innerHTML.replace("Practitioner", replaceTo); 
    } else if (type == "Patient") { 
     el.innerHTML.replace("Patient", replaceTo); 
    } 
    } 
} 

function SetAllDivLabelCaption(OABPreferences) { 
    var listlabel = document.getElementsByTagName("label"); 
    var listspan = document.getElementsByTagName("span"); 
    var listdiv = document.getElementsByTagName("div"); 
    for (var i = 0; i < listlabel.length; i++) { 
    if (listlabel[i].innerHTML.indexOf("Practitioner") > -1) { 
     ReplaceInnerHtml(document.getElementById(listlabel[i].id), "Practitioner", OABPreferences.OABRenamePractitioner); 
    } else if (listlabel[i].innerHTML.indexOf("Patient") > -1) { 
     ReplaceInnerHtml(document.getElementById(listlabel[i].id), "Patient", OABPreferences.OABRenamePatient); 
    } 
    } 
    for (var i = 0; i < listspan.length; i++) { 
    if (listspan[i].innerHTML.indexOf("Practitioner") > -1) { 
     ReplaceInnerHtml(document.getElementById(listspan[i].id), "Practitioner", OABPreferences.OABRenamePractitioner); 
    } else if (listspan[i].innerHTML.indexOf("Patient") > -1) { 
     ReplaceInnerHtml(document.getElementById(listspan[i].id), "Patient", OABPreferences.OABRenamePatient); 
    } 
    } 
    for (var i = 0; i < listdiv.length; i++) { 
    if (listdiv[i].innerHTML.indexOf("Practitioner") > -1) { 
     ReplaceInnerHtml(document.getElementById(listdiv[i].id), "Practitioner", OABPreferences.OABRenamePractitioner); 
    } else if (listdiv[i].innerHTML.indexOf("Patient") > -1) { 
     ReplaceInnerHtml(document.getElementById(listdiv[i].id), "Patient", OABPreferences.OABRenamePatient); 
    } 
    } 
} 
+0

工作後,你可能創建一個小提琴? –

+0

當然...我會做一個小提琴 – Tanmay

+2

'el.innerHTML.replace(「Patient」,replaceTo)'返回修改過的字符串,它不會設置任何東西。您需要將返回的字符串賦值給該屬性以將其設置爲新值,所以...............'el.innerHTML = el.innerHTML.replace(「Patient」,replaceTo)' – RobG

回答

0

function ReplaceInnerHtml(el, type, replaceTo) { 
 
       if (el != "" && el != null) { 
 
        if (type == "Practitioner") { 
 

 
         el.innerHTML=el.innerHTML.replace("Practitioner", replaceTo); 
 
        } 
 
        else if (type == "Patient") { 
 
         el.innerHTML= el.innerHTML.replace("Patient", replaceTo); 
 
        } 
 
       } 
 

 

 
      } 
 
      function SetAllDivLabelCaption() { 
 
       var listlabel = document.getElementsByTagName("label"); 
 
       var listspan = document.getElementsByTagName("span"); 
 
       var listdiv = document.getElementsByTagName("div"); 
 
       for (var i = 0; i < listlabel.length; i++) { 
 
        if (listlabel[i].innerHTML.indexOf("Practitioner") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listlabel[i].id), "Practitioner", "ROB"); 
 
        } 
 
        else if (listlabel[i].innerHTML.indexOf("Patient") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listlabel[i].id), "Patient", "BOB"); 
 
        } 
 
       } 
 
       for (var i = 0; i < listspan.length; i++) { 
 
        if (listspan[i].innerHTML.indexOf("Practitioner") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listspan[i].id), "Practitioner", "ROB"); 
 
        } 
 
        else if (listspan[i].innerHTML.indexOf("Patient") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listspan[i].id), "Patient", "BOB"); 
 
        } 
 
       } 
 
       for (var i = 0; i < listdiv.length; i++) { 
 
        if (listdiv[i].innerHTML.indexOf("Practitioner") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listdiv[i].id), "Practitioner", "ROB"); 
 
        } 
 
        else if (listdiv[i].innerHTML.indexOf("Patient") > -1) { 
 
         ReplaceInnerHtml(document.getElementById(listdiv[i].id), "Patient", "BOB"); 
 
        } 
 
       } 
 
      }
<h1 id="title">Javascript example no.2</h1> 
 
<label id="lbl1">Label-Practitioner</label><br/> 
 
<label id="lbl2">Label-Again Prac Pat</label><br/> 
 
<label id="lbl3">Label-Patient</label><br/> 
 
<span id="spn1">Span-Practitioner</span><br/> 
 
<span id="spn2">Span-Again Practitioner</span><br/> 
 
<span id="spn3">Span-No Prac</span><br/> 
 
<div id="dv1">Div-Practitioner</div><br/> 
 
<div id="dv2">Div-Again Practitioner</div><br/> 
 
<div id="dv3">Div-No Prac</div><br/> 
 
<button onclick="SetAllDivLabelCaption();"> 
 
Replace 
 
</button>

論@RobG意見基礎上,我增加了問題的答案,因爲它是添加el.innerHTML=el.innerHTML.replace("Practitioner", replaceTo); 感謝help.Thanks @RobG