Javascript 如何在转换框中输入后在另一个链接下添加多个链接
我在代码方面遇到了一些问题Javascript 如何在转换框中输入后在另一个链接下添加多个链接,javascript,html,Javascript,Html,我在代码方面遇到了一些问题 函数转换() { var text=document.getElementById(“url”).value; var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig; var text1=text.replace(exp,“”); var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim; document.getElementB
函数转换()
{
var text=document.getElementById(“url”).value;
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
document.getElementById(“converted_url1”).innerHTML=text1.replace(exp2,$1');
}
https://www.example.org
不要只设置一个标记的innerHTML
,而是每次创建一个新元素并将该新元素附加到输出保持器中
var textarea=document.querySelector('#url');
var outputEl=document.querySelector('#converted_url1');
var convertBtn=document.querySelector(“#converter”);
函数转换(){
var text=textarea.value;
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
var newP=document.createElement('p');
newP.innerHTML=text1.replace(exp2,$1');
outputEl.append(newP);
}
convertBtn.addEventListener('click',convert')代码>
用div:将其包装起来。默认情况下,Div有一个display:block
,因此它将位于前一个block元素下
函数转换()
{
var text=document.getElementById(“url”).value;
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
document.getElementById(“converted_url1”).innerHTML+=text1.replace(exp2,$1');
}
https://www.example1.org
https://www.example2.org
https://www.example3.org
https://www.example4.org
您只能添加一个链接,因为您每次都用新生成的html替换converted_url1
中的现有html。相反,您希望创建一个新的DOM节点并将其附加到文档中。这可以通过多种方式完成,其中之一是将新的html分配给另一个DOM节点(通常不在页面上的节点)并提取新内容。见下文:
函数转换()
{
var text=document.getElementById(“url”).value;
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
var text1=text.replace(exp,“”);
var exp2=/(^.[^\/])(www\.[\S]+(\b\$)/gim;
var template=document.createElement('template');
template.innerHTML=text1.replace(exp2,$1');
document.getElementById(“converted_url1”).appendChild(template.content);
}
您能给我们展示一些示例和预期的输出吗?很好的方法。我只想在第五行添加一个加号:document.getElementById(“converted_url1”).innerHTML+=text1.replace(exp2,$1')代码>这解决了它。天哪,我完全忘记了DOM节点。我很傻。非常感谢,先生!