我对如何开展这项工作感到非常困惑,在网上进行了大量研究以帮助找到解决方案,但什么也没得到。在这里找到此链接:http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/但仍然没有多大帮助
这就是我想要完成的,系统正在输出这样的文本,我无法控制html。
<div class="myclass">
Text 1
Text 2
Text 3
</div>`
但是想使用jquery在这些文本周围插入html 例如:
<div class="myclass">
<span>Text 1 </span>
<span> Text 2 </span>
<span> Text 3</span>
</div>
感谢任何帮助
非常感谢
答案 0 :(得分:2)
$('.myclass').html(function(i, v){
return '<span>' + $.trim(v).split('\n').join('</span><span>') + '</span>';
});
答案 1 :(得分:0)
还有其他方法。这将满足这个问题。
$(function(){
stuff=$('.myclass').text().split("\n");
newhtml='';
$.each(stuff, function(i,o){
if (o!=''){
newhtml +='<span>' + o + '</span>'."\n";
}
});
$('.myclass').html(newhtml);
});
答案 2 :(得分:0)
这应该对它进行排序:
var theDivs = document.getElementsByClassName('myclass');
for(var i in theDivs)
{
if(parseInt(i)==i)
{
var div = theDivs[i];
var text = div.innerHTML.split("\n");
for(var k in text)
{
var trimmed = text[k].replace(/^\s+|\s+$/,'');
if(trimmed != '') text[k] = '<span>'+trimmed+'</span>';
else text[k] = trimmed;
}
div.innerHTML = text.join("\n");
}
}