0

私は次のhtmlを持っています

<p><img src="" /> some text</p>

タグだけでテキストをラップする方法。<span>

最終結果は

<p><img src="" /><span>some text</span></p>
4

5 に答える 5

1

テキスト機能も便利だと思いました

$(function(){
    $('p').text(function(i, oldText){
        return oldText;
    }).wrap("<span>");
});

デモ

于 2013-07-23T03:44:22.727 に答える
1

フレームワークを使用しているかどうかに応じて、複数の方法があります。基本的に、バニラ js、プレーンな古い js でそれを行う方法を次に示します。

var ps = document.getElementsByTagName('p');
var text = ps[0].innerText;

ps[0].innerHTML = ps[0].innerHTML.replace(text, '<span>' + text + '</span>');
于 2013-07-23T03:43:01.483 に答える
0

セレクターが一意の画像に一致する場合、次のようになります。

$("selector").html($("<span/>", { text: $("selector").text() });

複数の要素に一致する場合は、 を使用.each()してそれぞれを個別に処理する必要があります。本体は上記を に$("selector")置き換えたものになり$(this)ます。

于 2013-07-23T03:40:26.137 に答える
0

あなたが試すことができます

$('p').contents().filter(function(){
    return this.nodeType == 3
}).wrap('<span/>')

デモ:フィドル

于 2013-07-23T03:41:30.887 に答える
0
var text = $('p').text();
var img = $('p img').attr('src');
$('p').html('').append('<img src="'+img+'" /><span>'+text+'</span>');
于 2013-07-23T04:11:43.453 に答える