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 回答