簡體   English   中英

之前的javascript插入測試 </table> 在textarea中

[英]javascript insert test before </table> in textarea

我有一個用於使用JavaScript使用表格將演員和角色輸入到表中的textarea,但是必須具有用於添加'<table class="xxxx">'的按鈕和用於結束</table>的單獨按鈕,修改以下代碼的方法,以在關閉</table>之前將新的actor添加為字符表行,從而消除了額外按鈕的需要?

function addtxt(input) {
var obj=document.getElementById(input);
var actortxt = document.getElementById('actor').value;
var chartxt = document.getElementById('character').value;
obj.value+="<tr><td>"+actortxt+"</td><td>as</td><td>"+chartxt+"</td></tr>";
}
<body style="background:grey">

<input type="text" id="actor"/>
<input type="text" id="character"/>

<div id="therefore"></div>

<script>
var i=0;
function addtxt() {
    i++;
    var actortxt = document.getElementById('actor').value;
    var chartxt = document.getElementById('character').value;
    if(i%3==1){
        var open1 = '<table class="xxxx">';
        var close1 = '';
        i=0;
    }else {
        var open1= '';
        var close1 = '</table>';
    }
    document.getElementById('therefore').innerHTML+=open1+"<tr><td>"+actortxt+"</td><td>as</td><td>"+chartxt+"</td></tr>"+close1;

}
document.addEventListener('click',addtxt,false);
</script>

</body>

創建一個臨時<div>並將textarea html字符串放入其中。

然后像在頁面中一樣操作temp <div>內部的table元素。

完成后,從臨時<div>的innerHTML設置textarea值

 var editor = document.getElementById('editor') var tempDiv = document.createElement('div'); tempDiv.innerHTML = editor.value; var table = tempDiv.querySelector('table'), newRow = table.insertRow(), cell1 = newRow.insertCell(), cell2 = newRow.insertCell(); cell1.textContent = 'Row 2 Cell 1'; cell2.textContent = 'Row 2 Cell 2'; editor.value = tempDiv.innerHTML; 
 <textarea id='editor' rows="15" cols="200"> <p>Some other element</p> <table> <tr><td> Row 1 Cell 1</td><td>Row 1 Cell 2</tr> </table> </textarea> 

沒關系,經過一番修補,我有了以下解決方案:

    function inserttext(tarea){
        var obj=document.getElementById(tarea);
        var maintext =  document.getElementById(tarea).value;
        var actortxt = document.getElementById('actor').value;
        var chartxt = document.getElementById('character').value;
        var chstr = '<tr><td>'+actortxt+'</td><td>as</td><td>'+chartxt+'</td></tr>';
//      alert('Main:'+maintext+'--'+'Actor:'+actortxt+'--'+'Char:'+chartxt+'--'+chstr);
        var position = maintext.indexOf('</table>');
//      alert('table close found at :'+position);
        var newtext= maintext.substr(0, position) + chstr + maintext.substr(position);
//      alert('New Text:'+newtext);
        obj.value=newtext;
    }

暫無
暫無

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

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