2017-05-27 17 views
-1

私は既にページにHTMLとして文字列として存在する要素を持っています。 どうすればその要素からテキストを取り出し、HTMLに変換して既存の要素に再注入できますか?既存のDOM要素テキストをHTML要素に変換するにはどうすればよいですか?

私が試したすべては、要素innerhtmlをテキストとして再レンダリングします。

window.current_element_content=window.current_element.previousElementSibling.innerHTML; 
window.current_element.previousElementSibling.getElementsByTagName('div').innerHTML = window.current_element_content; 

コンソールに印刷されたテキストの例。

<tr> 
     <td headers="mon"> 
      9:00 AM - 4:00 PM 
     </td> 
     <td headers="tues"> 
      9:00 AM - 4:00 PM 
     </td> 
     <td headers="wed"> 
      9:00 AM - 4:00 PM 
     </td> 
     <td headers="thurs"> 
      9:00 AM - 4:00 PM 
     </td> 
     <td headers="fri"> 
      9:00 AM - 4:00 PM 
     </td> 
     <td headers="sat"> 
      Closed 
     </td> 
     <td headers="sun"> 
      Closed 
     </td> 
+1

[HTMLエンティティデコード](https://stackoverflow.com/questions/5796718/html-entity-decode)の可能な複製 –

+1

[JavascriptのUnescape HTMLエンティティ?](https://stackoverflow.com)の可能な複製/ question/1912501/unescape-html-entities-in-javascript) –

答えて

1

代わりinnerHTMLtextContentを読み出し、その後、あなたはそれを持っていたようinnerHTMLにそれを記述する必要があります。

var element = current_element.previousElementSibling.querySelector('div'); 
element.innerHTML = element.textContent; 

注意また、そのinnerHTMLを持っていないのNodeListを返しますgetElementsByTagName。代わりにquerySelectorを使用します。

1

あなたがここからHTMLエンティティをデコードする方法を見ることができます。Unescape HTML entities in Javascript?

あなたが.innerHTMLプロパティを使用して、指定された要素にあなたのコードを挿入することができた後:

function htmlDecode(input){ 
 
    var e = document.createElement('div'); 
 
    e.innerHTML = input; 
 
    return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue; 
 
} 
 

 
$(document).ready(function(){ 
 
    var s = '<input type=button value="Inserted Button">'; 
 
    document.getElementById('my_place').innerHTML = htmlDecode(s); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div id="my_place"> 
 
&nbsp; 
 
</div>

上記のコードでは、jQueryはdocument.readyでトリガするためにのみ使用されます。

+0

'document'はオブジェクトであり、タグではありません – charlietfl

+0

@charlietflありがとう、訂正しました。 –

関連する問題