Javascript-重复使用某个函数而不删除以前的实例?

时间:2018-11-13 12:33:51

标签: javascript jquery html

我如何在不影响功能的先前实例输出的情况下重复功能的输出?

在某些情况下:

我正在创建一个文本编辑器,并创建了一个“链接生成器”,该链接创建了一个相对的href链接。

但是,当我将链接附加到文本区域内容时,该链接对于第一个实例将完美显示。但是,如果我重复该功能以添加另一个相对链接,则会删除包含附加的第一个链接的html。

我尝试将链接的文本输出更改为getElementByClassName,因为我认为ID仅最好用于唯一的函数,而无需重复。通过使用该类,它可以更广泛地使用。

例如一些代码

       lag(hst1.starttime) over (partition by hst1.QUERYID order by hst1.starttime)

<textarea name="textarea"  class="txtarea" id="textarea" style="display: none; font-family: Arial;"></textarea>

  <iframe name="editor" id="editor" style="width:824; height: 400; font-family: Arial;"></iframe>
function bcmllink() {
      var logicalid = document.getElementById("logicalid");
      var txtinput = document.getElementById("txtinput");
      var txtOutput = document.getElementById("txtOutput");
      var name = logicalid.value;
      txtOutput.value = "\x3ca href\x3d\x22\x23\x22 bcmltype\x3d\x22link\x22 logicalid\x3d\x22" + logicalid.value + "\x22\x3e" + txtinput.value + "\x3c\x2fa\x3e"
      } 
	  

function appendtotext() {
	var myTextArea = $('.txtarea');
myTextArea.val(editor.document.getElementsByTagName('body')[0].innerHTML = editor.document.getElementsByTagName('body')[0].
		textContent + txtOutput.value + "&nbsp;")
}

3 个答案:

答案 0 :(得分:0)

也许您应该考虑使用列表而不是文本区域。我目前正在使用此消息创建一个chatapp,并且在我收到新消息时不会删除以前的消息。

答案 1 :(得分:0)

您已经在导入jquery。为什么不利用其4函数呢?

4

请注意,您不必担心格式化HTML或转义字符。

如果您想追加到先前填充的文本区域:您可以执行以下操作:

12

答案 2 :(得分:0)

我设法找到了想要的答案:

function appendtotext() {
var myTextArea = $('.txtarea');myTextArea.val(editor.document.getElementsByTagName('body')[0].innerHTML = editor.document.getElementsByTagName('body')[0].
    innerHTML + txtOutput.value + "&nbsp;")}

问题是我以前在最后一行(innerHTML现在位于其中)使用textContent。这意味着在使用该函数的每个实例时,它将删除周围的html标签并仅放置文本内容。

有关更多信息,请参见此处: https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent