0

$('td.created')javascript / jqueryを使用してすべてを選択し、HTMLを分割してから、各セクションをスパンタグでラップするにはどうすればよいですか<br>(スタイルを設定するためにクラスをspan:firstに追加できるようにします)。

返される文字列の形式は次の$('td.created').html()ようなものです。

posted by User123 <br> Posted on 1/2/12 at 4:15PM

4

2 に答える 2

1

考えられるユニバーサルソリューション(2行だけで機能するわけではありません):

$("td.created").each(function() {
    var text = this.innerHTML.split("<br>");
    for (var i = 0; i < text.length; i++) {
        var span = $("<span />").html(text[i]);
        if (i == 0) span.addClass("first");
        span.appendTo("#element");
    }
});​

デモ:http: //jsfiddle.net/7xQAL/

于 2012-06-04T17:46:52.603 に答える
1
$('td.created').each(function(i, html) {
    var newHtml = $(this).contents(),
        spans = [];
    newHtml.each(function() {
        var html = (this.nodeName.toLowerCase() == 'br') ? '<br>' : '<span>' + this.textContent + '</span>';
        spans.push(html);
    });
    $(this).html(spans.join(''));
});

デモ(DIVコンテナを使用) http://jsfiddle.net/PVLek/

于 2012-06-04T18:31:57.550 に答える