观察:
<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”元素!很抱歉早些时候不够清楚!
答案 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)
var $temp = $('.description').find('a').text('LINK').remove(); // edit, remove and store in a 'variable'
$('.description').text('I am this person! ').append($temp); // attach