我有函数,它显示/应该从textarea输出url(应该只列出url)。目前,它只显示最后一个结果/网址。我如何输出所有的数组/ URL(也许成一个div)。

我的代码:

<textarea id="textarea"></textarea>

<div id="converted_url"></div>

<script type="text/javascript">
$("#textarea").on("change keyup paste", function() {
    var text=document.getElementById("textarea").value;
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    text.replace(urlRegex, function(url) {
    var link = '<div><a href="' + url + '">' + url + '</a></div>';
    document.getElementById("converted_url").innerHTML=link
    })
});
</script>


即时输出(带有此代码):

javascript - 将Javascript数组输出到DIV-LMLPHP

希望(应该):

javascript - 将Javascript数组输出到DIV-LMLPHP

我不想附加结果,结果没有更新,因此textarea已更改。即:
javascript - 将Javascript数组输出到DIV-LMLPHP

最佳答案

每当您更新结果区域时,都将覆盖先前的结果。您需要附加到它。

仅供参考:input事件是一个广泛的事件,只要对元素的任何输入都会触发。您可能会发现,它比监听多个事件更简单明了。另外,由于您使用的是JQuery,因此最好始终使用它来获取所有DOM引用。



let result = $("#converted_url");

$("#textarea").on("input", function() {
    result.html(""); // Reset the output

    var urlRegex = /(https?:\/\/[^\s]+)/g;
    $("#textarea").val().replace(urlRegex, function(url) {
      var link = '<div><a href="' + url + '">' + url + '</a></div>';

      // Append the new information to the existing information
      result.append(link);
    });
});

textarea { width:200px; height:50px;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(Just type anything in the box to trigger the event.)<br>
<textarea id="textarea">http://google.com blah blah http://facebook.com</textarea>

<div id="converted_url"></div>

07-26 09:40
查看更多