1

次のようなコードがあります。

<p>Nuno</p>
<p>Eimes</p>

次のように操作するにはどうすればよいですか。

<p><a href="name/Nuno">Nuno</a></p>
<p><a href="name/Eimes">Eimes</a></p>

私はもう試した:

var name=$(this).text();
$( "p" ).each(function() {
  $(this).prepend('<a href="id/'+ $(this).text() +'"> ');
$(this).append("</a>");
});

しかし、結果は次のとおりです。

<p><a href="id/Nuno"> </a>Nuno</p>
<p><a href="id/Eimes"> </a>Eimes</p>

に変更しても<a>中身はありません。値を示しませんでした。$('p').text();name

4

5 に答える 5

2
$( "p" ).each(function() {
   var text = $(this).text();
   $(this).wrapInner('<a href="name/'+text+'"></a>');
 });

ライブデモ

于 2013-09-14T05:10:04.330 に答える
0

シンプルで.wrapInner()

$('p').wrapInner(function(){
    return '<a href="name/' + $(this).text() + '" />' // even this.innerHTML instead of $(this).text() will do
})

デモ:フィドル

于 2013-09-14T05:10:50.973 に答える
0

名前を抽出したら、<p></p>タグ内のコード全体をもう一度書き直します。

var name=$(this).text();
$( "p" ).each(function() {
  $(this).html('<a href="name/'+ $(this).text() +'">' + $(this).text() + '</a>');
});
于 2013-09-14T05:11:05.583 に答える
0

内部のものを取得して、タグ内のすべてを新しい HTML に置き換えるだけです。

var name=$(this).text();
$( "p" ).each(function() {
    old = $(this).html();
    $(this).html('<a href="id/'+ old +'">'+old+'</a>');
});

フィドル

于 2013-09-14T05:11:26.820 に答える
0

デモ

$('p').html(function () {
    return '<a href="name/' + this.innerHTML + '">' + this.innerHTML + '</a>';
});

.html()

于 2013-09-14T05:12:49.583 に答える