Javascript 在<;p>;但保留<;a>;标记在内容的相同位置

Javascript 在<;p>;但保留<;a>;标记在内容的相同位置,javascript,jquery,Javascript,Jquery,我有这个密码 <p class='par'>some text goes here <a class='link' href='#somelink'>Link</a> Text continues here</p> 但这当然是在字符串的末尾添加了一个标记。 有什么建议吗?您可以尝试以下脚本: $(文档).ready(函数(){ var hrefTag=$('a').attr('href'); var ClassTag=$('a').attr('

我有这个密码

<p class='par'>some text goes here <a class='link' href='#somelink'>Link</a> Text continues here</p>
但这当然是在字符串的末尾添加了一个标记。
有什么建议吗?

您可以尝试以下脚本:

$(文档).ready(函数(){
var hrefTag=$('a').attr('href');
var ClassTag=$('a').attr('class');
$('p').html(“”);
});

有些文字放在这里,文字继续放在这里

这是你想要的吗

var p =document.getElementsByTagName('p')[0]
var a =p.getElementsByTagName('a')[0];
p.innerHTML='';
p.appendChild(a);

你可以用电脑做类似的事情。然后可以使用属性更改值

对于文本节点,nodeType属性将返回3

//设置新值
elements=$('.par').contents().filter(function()){
返回this.nodeType==3;
});
元素[0]。textContent='newtext';
元素[1]。textContent='newtext 1'


有些文字放在这里,文字在这里继续

希望这段文字有用

var cache = $('.par a'); //  will select a inside .par
var _lastText = " this is last part"; 
$('.par').empty(); // Will empty p tag
$('.par').text('new text ');
$('.par').append(cache);
$('.link').text('new link text'); 
$('.par').append(_lastText)
您也可以这样做

$('p').contents().map(函数(){
如果(this.nodeType==3)this.textContent='newtext';
如果(this.nodeType==1&&this.nodeName==A')this.textContent='newlinktext';
});

有些文本放在这里文本继续放在这里

您可以拆分
标记并更改文本在“p”内和“a”外的位置

$(".par").html($(".par").html().replace($(".par").html().split('<a')[0], 'new first part text'));
$(".par").html($(".par").html().replace($(".par").html().split('/a>')[( $(".par").html().split('/a>').length - 1)], 'new continue text'));
$(“.par”).html($(“.par”).html().replace($(“.par”).html().split('')[($(“.par”).html().split('/a>')).length-1)],“新建继续文本”);

您可以检索链接,而不是整个子列表,然后像以前一样删除整个子列表,添加存储的链接,然后添加文本我们不能只创建HTML字符串吗?但这仍然不会保留原始位置。。。我猜!你能给出一些示例输出吗?你说的Rejith R Krishnan是什么意思?我想这是我需要的最接近的东西。。。我将首先尝试一下,因为我的内容当然是动态的:)如果我要替换的文本是一个完整的字符串而不是拆分的呢?@adrian我不明白
$(".par").html($(".par").html().replace($(".par").html().split('<a')[0], 'new first part text'));
$(".par").html($(".par").html().replace($(".par").html().split('/a>')[( $(".par").html().split('/a>').length - 1)], 'new continue text'));