2012-08-14 132 views
0

我編寫了一個將一些xml標記插入到textarea中的表單。我使用這個功能:javascript在文本區域的特定位置插入文本

(function ($) { 
    addCustomTag = function (name, param, value) { 
     var code = "<" + name + " " + param + "=\"" + value + "\">\n</" + name + ">"; 
     document.getElementById("codeArea").value += code; 
    }; 
})(jQuery); 

我怎樣才能使一些其他功能將標籤插入以前創建的標籤? XML代碼將永遠不會在服務器上使用。我所需要的就是在特定行中插入tex,這取決於在不切割它之前該行上的內容。類似這樣的:

addCustomSubtag = function(name,param,value,parent) { 
    document.getElementById("codeArea").selectionStart = document.getElementById("codeArea").value - parent.length; 
    var code = "<" + name + " " + param + "=\"" + value + "\">\n</" + name + ">"; 
    document.getElementById("codeArea").value += code; 
}; 

JavaScript是沒有必要。它也可以寫在jQuery上。 謝謝。

+0

你的意思是你想在caretPosition插入,如果是,那麼這可能幫助:http://stackoverflow.com/questions/946534/insert-text-into -textarea-with-jquery/946556#946556 – 2012-08-14 06:07:08

+0

我認爲問題不在於追加html元素,而是插入已插入的xml標記的內部標記。我不確定插入的xml標籤是否會被視爲「標籤」。如果不是唯一的方法是字符串操作,則正則表達式在這種情況下會很有幫助。 – 2012-08-14 07:15:26

+0

我所需要的只是在特定的行中插入文本,這取決於在不切割它之前該行上的內容。 – tumoxep 2012-08-14 07:19:14

回答

0

您可以將任何這些jQuery函數

更新:

其實我們可以使用jQuery的DOM操作方法來操作XML還。

var xml = "<main/>"; 
alert(xml);         // <main/> 
var $xml = $(xml).append($("<sub1/>")); 
alert($xml.html());       // <sub1></sub1> 
$xml.find("sub1").append($("<sub2/>")); 
alert($xml.html());       // <sub1><sub2></sub2></sub1> 
alert($xml.get(0).outerHTML);    // <main><sub1><sub2></sub2></sub1></main>