Javascript 将部分文本换行到新元素标记中
我将一个文本放入Javascript 将部分文本换行到新元素标记中,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我将一个文本放入标记中。我希望将该文本的一部分包装到另一个元素标记中,该标记的ID不在基本HTML代码中。 由于我无法修改基本HTML代码,因此我不得不使用JavaScript/JQuery来进行修改 我有以下HTML代码: <span id="my_span">John<input type="hidden" name="firstname" value="John" id="my_input1"> <br>Smith<input type="hidd
标记中。我希望将该文本的一部分包装到另一个元素标记中,该标记的ID不在基本HTML代码中。
由于我无法修改基本HTML代码,因此我不得不使用JavaScript/JQuery
来进行修改
我有以下HTML代码:
<span id="my_span">John<input type="hidden" name="firstname" value="John" id="my_input1">
<br>Smith<input type="hidden" name="lastname" value="Smith" id="my_input2">
</span>
听起来很简单,但我没能做到
我以后需要将这些新添加的ID作为其他目标
感谢您的回复。使用jquery的
.contents()
获取您的
的内容。然后只过滤到文本节点(节点类型为3)。然后循环遍历每一个,并用一个”)将其包装起来;
}
});
});代码>
约翰
史密斯
默认情况下,在文本周围有另一个带有已知ID的
元素
<span id="name_1">John</span>
约翰
现在动态更改元素类型
var currentText = $("#name_1").innerHTML;
$("#name_1").replaceWith('<a id="dynamic_1">' + currentText + '</a>');
var currentText=$(“#name_1”).innerHTML;
$(“#name_1”)。替换为(“”+currentText+“”);
如果有一系列这样的输入,可以在循环中更改id中的索引后缀 尝试使用.map()
,Array.prototype.forEach()
,.html()
,.replace()
$(“#我的跨度”).map(函数(){
//拆分“#my_span`”的新行字符。textContent`
var txt=this.textContent.split(“\n”).filter(布尔值);
//迭代每个文本`
forEach(函数(val,index){
$(this).html(函数(\ux,html){
//将'val'替换为'a'元素
返回html.replace(val,$(“”){
“文本”:txt[索引],
“id”:“添加了标签”+(索引+1),
“href”:“#”
})[0]。outerHTML)
})
}.绑定(本)
})
约翰
史密斯
这项功能非常有效。非常感谢你的帮助!
var currentText = $("#name_1").innerHTML;
$("#name_1").replaceWith('<a id="dynamic_1">' + currentText + '</a>');