2017-03-02 121 views
2

我想在文本框中顯示HTML內容,但我卡住了。 這是我的代碼,當我將文本顯示到標籤中時,它工作正常。但它不適用於文本框。javascript-如何在文本框中顯示html內容

HTML代碼:

<div id="showDiv"></div> 

JavaScript代碼:

function myfun(){ 
    var item="<span class="kwcat">results in <b>(.*?)</b></span>"; 
    var div2 = document.createElement('div'); 
    div2.setAttribute("id", "myid"); 
    div2.setAttribute("class","inner"); 
    value2= replaceAll(item, '<','&lt;'); 
    value2=replaceAll(value2, '>','&gt;'); 

    var comp= '<div>'; 
    comp += '<label >'; 
    comp += "Heading: "; 
    comp += '</label>'; 

    /* comp += '<input type="text" value=' + value2 + '>'; */ 

    comp += '<label>'; 
    comp += value2; 
    comp +='</label>'; 
    comp += '</div>'; 
    div2.innerHTML = comp; 
    showDiv.appendChild(div2); 
} 
function replaceAll(str, find, replace) { 
    return str.replace(new RegExp(find, 'g'), replace); 
} 

我所評論的線,就是我要工作的內容。我哪裏錯了?

+2

你需要用引號括住值 – Toxide82

+0

M你需要richtext編輯器。 –

+0

你爲什麼要將屬性的id設置爲跨度元素 – Toxide82

回答

0

用引號括輸入值以及

function myfun(){ 
var item="<span class=\"kwcat\">results in <b>(.*?)</b></span>"; 
var div2 = document.createElement('div'); 
div2.setAttribute("id", "myid"); 
div2.setAttribute("class","inner"); 
value2= replaceAll(item, '<','&lt;'); 
value2=replaceAll(value2, '>','&gt;'); 

var comp= '<div>'+ 
     '<label>Heading:</label>'+ 
     '<textarea>'+ value2 + '</textarea>'+ 
     '<label>'+value2+'</label>'+ 
     '</div>'; 

div2.innerHTML = comp; 
showDiv.appendChild(div2); 
} 

你的函數應該像上面

+0

不能正常顯示只有

function myfun(){ 
 
    var item="<span class=\"kwcat\">results in <b>(.*?)</b></span>"; 
 
    var div2 = document.createElement('div'); 
 
    div2.setAttribute('id', item); 
 
    div2.setAttribute('class','inner'); 
 
    value2= replaceAll(item, '<','&lt;'); 
 
    value2=replaceAll(value2, '>','&gt;'); 
 

 
    var comp= '<div>'; 
 
    comp += '<label>'; 
 
    comp += "Heading: "; 
 
    comp += '</label>'; 
 

 
    comp += '<input type="text" value="' + value2 + '">'; 
 

 
    comp += '<label>'; 
 
    comp += value2; 
 
    comp +='</label>'; 
 
    comp += '</div>'; 
 
    div2.innerHTML = comp; 
 
    showDiv.appendChild(div2); 
 
} 
 
function replaceAll(str, find, replace) { 
 
    return str.replace(new RegExp(find, 'g'), replace); 
 
} 
 
    
 
myfun();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="showDiv"></div>

注: - 爲什麼不你使用text-ar EA。因爲將HTML粘貼到文本區域是誹謗的方式。

+0

不能正常顯示僅的結果爲(。*?)',並且您已經編寫了結果在(。*?)'。這個項目的價值,我從一些API獲取,所以我不能修改它。還有很多其他的價值,並且用單引號替換每個雙引號在每種情況下都可能不是真的。 –

0

你應該用引號括值

comp += '<input type="text" value="' + value2 + '">'; 
0
  • 編碼雙引號,通過「與"

值2 =的replaceAll(值2,「'取代,'"');

  • 環繞輸入數據類型的屬性的用雙引號

comp += <input type="text" value="' + value2 + '">';

現在,你有你的輸入字段的值項變量

的值相同的值