如何使用jQuery编辑多个HTML元素中的文本区域

时间:2012-04-30 11:57:19

标签: jquery

观察:

<span class="description">

Not This person?
<a href="http://www.example.com" target="_self">Click Here</ >

</span>

我想编辑“描述”类的“非此人”部分以及“点击此处”部分而不触及锚标记“href”属性。

这可以用jQuery吗?

对于解释家伙这么可怕感到抱歉,这里有一个更好的解释:

好的,所以这段HTML写在Pardot的布局模板中,它会在“描述”的范围内生成内容。这将包括锚点及其文本“点击这里”。在编辑器中,HTML看起来像这样:

<span class="description">

%%description%%

</span>

在浏览器中,它将生成以下内容:

<span class="description">

Not This person?
<a href="http://www.example.com" target="_self">Click Here</a >

</span>

我想用jQuery编辑“Not this person”和“click here”元素!很抱歉早些时候不够清楚!

3 个答案:

答案 0 :(得分:1)

修改

由于您无法修改结构,因此您可以使用此代码从<a>中提取<span>,更新这两个元素然后合并它们:

var desc = $(".description");
var a = desc.find("a");
var href = a.attr('href');
var target = a.attr('target');
desc.html("New description text" + '<a href="'+href+'" target="'+target+'">New link label</a>');

原始回答

你应该将文本节点“不是这个人?”分开。来自 a ,也许是通过移出 span ?考虑这个结构:

<span id="your_description_id" class="description">
Not This person?
</span>

<a id="your_anchor_id" href="http://www.example.com" target="_self">Click Here</a>

然后您可以使用jQuery编辑这些文本:

$("#your_description_id").text("new description");
$("#your_anchor_id").text("new link label");

答案 1 :(得分:0)

如果你能够包装“不是这个人?”在另一个跨度然后你可以使用 $('span.description span')和$('span.description a')找到它们并编辑等。

var englishVersion=$('span.description span').text();
var frenchVersion=somefunction(englishVersion);
$('span.description span').text(frenchversion);

答案 2 :(得分:0)

demo jsBin

   var $temp = $('.description').find('a').text('LINK').remove(); // edit, remove and store in a 'variable'
   $('.description').text('I am this person! ').append($temp); // attach