私は次のhtmlを持っています
<p><img src="" /> some text</p>
タグだけでテキストをラップする方法。<span>
最終結果は
<p><img src="" /><span>some text</span></p>
私は次のhtmlを持っています
<p><img src="" /> some text</p>
タグだけでテキストをラップする方法。<span>
最終結果は
<p><img src="" /><span>some text</span></p>
テキスト機能も便利だと思いました
$(function(){
$('p').text(function(i, oldText){
return oldText;
}).wrap("<span>");
});
フレームワークを使用しているかどうかに応じて、複数の方法があります。基本的に、バニラ js、プレーンな古い js でそれを行う方法を次に示します。
var ps = document.getElementsByTagName('p');
var text = ps[0].innerText;
ps[0].innerHTML = ps[0].innerHTML.replace(text, '<span>' + text + '</span>');
セレクターが一意の画像に一致する場合、次のようになります。
$("selector").html($("<span/>", { text: $("selector").text() });
複数の要素に一致する場合は、 を使用.each()
してそれぞれを個別に処理する必要があります。本体は上記を に$("selector")
置き換えたものになり$(this)
ます。
あなたが試すことができます
$('p').contents().filter(function(){
return this.nodeType == 3
}).wrap('<span/>')
デモ:フィドル
var text = $('p').text();
var img = $('p img').attr('src');
$('p').html('').append('<img src="'+img+'" /><span>'+text+'</span>');