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 に答える