簡體   English   中英

如何將現有的DOM元素文本轉換為HTML元素?

[英]How do I convert existing DOM element text to HTML element?

我有一個已經存在於頁面中的元素,其中HTML作為字符串。 如何從該元素中獲取文本並將其轉換為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>

您可以從此處查看如何解碼HTML實體: 在Java中取消轉義HTML實體?

之后,您可以使用.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上觸發。

您需要讀出textContent而不是innerHTML ,然后像使用它那樣將其寫入innerHTML

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

還要注意, getElementsByTagName返回一個不包含innerHTML的NodeList。 而是使用querySelector

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM