将Html添加到没有子元素的文本

时间:2013-02-06 22:16:02

标签: javascript jquery

我对如何开展这项工作感到非常困惑,在网上进行了大量研究以帮助找到解决方案,但什么也没得到。在这里找到此链接: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>

感谢任何帮助

非常感谢

3 个答案:

答案 0 :(得分:2)

$('.myclass').html(function(i, v){
    return '<span>' + $.trim(v).split('\n').join('</span><span>') + '</span>';
});

http://jsfiddle.net/vDp6A/

答案 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");
    }
}