[英]How to pass HTML as String to a TextArea
我正在嘗試獲取用戶使用屬性contenteditable="true"
編輯的表,但是我不想在輸出中出現該表。
所以要輸出我正在這樣做:
$(document).ready(function() {
$("#btn").click(function(){
var text = $("#tab").html(); // taking the content
var res = text.replace('<td contenteditable="true">','<td>'); //trying to replace
document.getElementById("output").innerHTML = res ; //output data
});
});
問題是代碼忽略了替換,您知道為什么嗎?
====編輯:
對不起,我認為我還不清楚。 唯一的問題是輸出,而不是html,我將html傳遞到文本區域,以供用戶復制等。
請在這里查看代碼: https : //jsfiddle.net/mnpxwhx6/
當我執行輸出時,我不希望TD攜帶可編輯屬性。
謝謝
如果正確解釋Question,則不需要.replace()
嗎? 如果要在td
元素上刪除contenteditable
屬性,則可以在設置textarea
html
之前克隆#tab
元素,並使用.removeAttr()
從td
元素的html
中刪除contenteditable
。
textarea { width: 400px; height: 400px; }
<!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script> $(document).ready(function() { $("#btn").click(function() { var text = $("#tab").clone(); text.find("td[contenteditable]").each(function() { $(this).removeAttr("contenteditable") }) document.getElementById("output").innerHTML = text[0].innerHTML; }); delete text; }); </script> </head> <body> <div id="tab"> <table border=1> <thead> <tr> <td></td> <td contenteditable="true"> 48-50 </td> <td contenteditable="true"> 50-52 </td> <td contenteditable="true"> 52-54 </td> </tr> </thead> <tbody> <tr> <th>medida1</th> <td contenteditable="true"> 104cm </td> <td contenteditable="true"> 108cm </td> <td contenteditable="true"> 112cm </td> </tr> <tr> <th>medida2</th> <td contenteditable="true"> 106cm </td> <td contenteditable="true"> 110cm </td> <td contenteditable="true"> 114cm </td> </tr> <tr> <th>medida3</th> <td contenteditable="true"> 122cm </td> <td contenteditable="true"> 126cm </td> <td contenteditable="true"> 130cm </td> </tr> <tr> <th>medida4</th> <td contenteditable="true"> 69cm </td> <td contenteditable="true"> 70cm </td> <td contenteditable="true"> 71cm </td> </tr> <tr> <th>medida5</th> <td contenteditable="true"> 38cm </td> <td contenteditable="true"> 40cm </td> <td contenteditable="true"> 42cm </td> </tr> </tbody> </table> </div> <button id="btn">Show HTML</button> <hr> <textarea id="output" rows="4" cols="50"> </textarea>
jsfiddle https://jsfiddle.net/mnpxwhx6/1/
嘗試使用正則表達式替換字符串。
$(document).ready(function() {
$("#btn").click(function(){
var text = $("#tab").html(); // taking the content
var res = text.replace(/^.*<td.*contenteditable="true".*>$/gm,'<td>');
$("#output").text(res) ; //output data
});
});
看來您希望從<td>
刪除contenteditable=true
屬性。
那不是解決的辦法。 而是嘗試使用jQuery select by attribute
選擇器選擇器來找到所需的TD並更改屬性:
$('table').find('[contenteditable=true]').attr('contenteditable','false');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.