Javascript 我可以使用HTML,循环使用它来更改元素,并将结果显示为纯文本吗?

Javascript 我可以使用HTML,循环使用它来更改元素,并将结果显示为纯文本吗?,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试开发一个脚本,它将接收用户提交的HTML,循环使用它来识别匹配的标记,对那些匹配的标记进行调整,然后将生成的HTML作为用户可以复制的纯文本输出。这里的最终目标是替换提交中的所有href,并用不同的URL替换它们 例如,这个: <a href="http://example.com/">Link A</a> <a data-track="false" href="http://example.com/">Link B</a> <a

我正在尝试开发一个脚本,它将接收用户提交的HTML,循环使用它来识别匹配的标记,对那些匹配的标记进行调整,然后将生成的HTML作为用户可以复制的纯文本输出。这里的最终目标是替换提交中的所有
href
,并用不同的URL替换它们

例如,这个:

<a href="http://example.com/">Link A</a>
<a data-track="false" href="http://example.com/">Link B</a>
<a href="http://example.com/">Link C</a>
但是我不能像这样在字符串上使用jQuery,对吗?它需要在DOM中

我不确定这样做的最佳方式。也许另一种语言会很有用,但除了HTML和CSS之外,javascript和jQuery是我唯一熟悉的语言


非常感谢您提供的任何帮助。

您可以从DOM之外的html字符串创建一个jQuery对象,并像在DOM中一样对其进行操作

简单的例子:

var html='<div><p>ABC</p></div>';

alert( $(html).find('p').text() ); // alerts "ABC"
var html='ABC

'; 警报($(html).find('p').text());//警报“ABC”

var$div=$('').append(html).find('p').after('DEF

); var newHtml=$div.html();
会回来的

<div>
    <p>ABC</p>
    <p>DEF</p>
</div>

ABC

DEF


最后,我将循环使用从html创建的jQuery对象,并使用jQuery方法执行您需要的操作

我认为您的问题与

答案是,您可以将其包装在jQuery对象中。然后对其使用jQuery的常规DOM操作方法

var myhtml = $($('#main-input').val());

myhtml.find('a').each(function () {
    alert($(this).text());
});

如果是顶级元素,则需要使用过滤器而不是查找。

谢谢您的回复。我试图应用你的代码,但对我无效。我以这个代码笔为例。在我看来,它应该立即显示一个带有
内容的警报,您需要一个jQuery对象。请查看我的最新回复。谢谢回复。这对我很管用。最后一件事,我似乎不能把从
textarea
中得到的值再吐回另一个
textarea
。我得到的只是
[object object]
。现在
myhtml
是一个jQuery对象,不再是普通字符串。谢谢。我以为我已经用这些信息弄明白了,但事实证明我没有。我需要发布另一个问题,关于如何将jquery对象中的html以纯文本形式输出到
字段中。
var $div= $('<div>').append(html).find('p').after('<p>DEF</p>');
var newHtml= $div.html();
<div>
    <p>ABC</p>
    <p>DEF</p>
</div>
var myhtml = $($('#main-input').val());

myhtml.find('a').each(function () {
    alert($(this).text());
});