0

我对如何完成这项工作感到非常困惑,在网上做了很多研究以帮助找到解决方案,但一无所获。在此处找到此链接: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>

任何帮助表示赞赏

非常感谢您

4

3 回答 3

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

http://jsfiddle.net/vDp6A/

于 2013-02-06T22:29:58.497 回答
0

还有其他方法。这将满足这个问题。

$(function(){

  stuff=$('.myclass').text().split("\n");

  newhtml='';
  $.each(stuff, function(i,o){
    if (o!=''){
      newhtml +='<span>' + o + '</span>'."\n";
    }
  });
  $('.myclass').html(newhtml);

});
于 2013-02-06T22:21:17.070 回答
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");
    }
}
于 2013-02-06T22:21:57.990 回答