我要做的是采用包含链接的段落,例如:
<p>this is a <a href="#">link</a> to something</p>
...并使用jQuery对其进行修改,以使链接包含所有段落文本,例如:
<p><a href="#">this is a link to something</a></p>
我似乎无法理解这一点。
干杯, 詹姆斯
答案 0 :(得分:1)
使用'empty'删除p中的所有内容,然后将href'追加'到p。
答案 1 :(得分:1)
使用text()
。
在您的具体情况下:
$('p').each(
function()
{
var $this = $(this); //more than 1 reference, I store it in a variable
var address = $this.find('a').attr('href');
//$this.text() includes children elements' text
$this.html('<a href="' + address + '">' + $this.text() + '</a>');
}
);
答案 2 :(得分:1)
您需要能够选择段落和锚点。所以,如果他们有ids会有所帮助。
<p id="p">this is a <a id="a" href="http://www.google.com">link</a> to something</p>
然后:
var orig = $("#p").text();
var a = $('#a').text(orig);
$("#p").empty("");
$("#p").html(a);
答案 3 :(得分:1)
$("p > a").each(function(el) {
var parent = $(this).parent();
var text = parent.text();
parent.replaceWith("<a href="+$(this).attr('href')+">"+text+"</a>");
});
这样做,是遍历段落中的所有锚标记,获取唯一的文本部分,并用包含相同href属性的新锚标记替换段落(父 var)提取的文本。
答案 4 :(得分:1)
试试这个:
$(function() {
var link = $("<a href='#'></a>");
var text = $("p a").parent().text();
$("p").replaceWith($(link).append(text));
});