Javascript 在jQuery中用另一个替换一组HTMLBR元素——用jQuery解析html
这就是我的问题。我的网站上有一个小的第三方服务,它从RSS提要生成一堆HTML,并在加载页面时将其粘贴到我的网页中。但是,当它生成HTML时,会插入一堆完全不必要的break标记。不幸的是,生成此代码的源文件位于第三方服务器上,而不是我的服务器上,因此我无法对其进行调整 因此,我试图在页面加载之前通过在body标记的onLoad=”“属性中使用一个小jQuery来调整HTML。但是,我不能简单地使用$('br').remove()之类的东西;因为这样就没有任何中断标记,我需要在当前有三个中断标记的每个位置都有一个中断标记 所以最终,我需要做的是提出一个jQuery语句来替换Javascript 在jQuery中用另一个替换一组HTMLBR元素——用jQuery解析html,javascript,jquery,html,html-parsing,Javascript,Jquery,Html,Html Parsing,这就是我的问题。我的网站上有一个小的第三方服务,它从RSS提要生成一堆HTML,并在加载页面时将其粘贴到我的网页中。但是,当它生成HTML时,会插入一堆完全不必要的break标记。不幸的是,生成此代码的源文件位于第三方服务器上,而不是我的服务器上,因此我无法对其进行调整 因此,我试图在页面加载之前通过在body标记的onLoad=”“属性中使用一个小jQuery来调整HTML。但是,我不能简单地使用$('br').remove()之类的东西;因为这样就没有任何中断标记,我需要在当前有三个中断标记
<br><br clear=all><br>
与
我对jQuery相当陌生,但似乎找不到任何有助于我实现这一点的东西。有什么想法吗
提前感谢您的帮助 最好使用regexp而不是jquery。最简单的例子:
string.replace('<br><br clear=all><br>', '<br />')
string.replace(“
”,“
”)
假设它们与您给定的格式完全相同,您可以执行以下操作:
var br = $('br[clear="all"]');
br.attr('clear', '');
br.prev('br').remove();
br.next('br').remove();
您可以使用选择器属性,而不是在onload中,而是在jqueryready中(http://api.jquery.com/ready/) $('br[clear=all]')。删除()
有关选择器属性的更多详细信息:http://api.jquery.com/attribute-equals-selector/为什么不直接替换RSS html容器的html:
yourContainerElem.innerHTML = yourContainerElem.innerHTML.replace(/<br><br clear=all><br>/gi, '<br />');
yourContaineReem.innerHTML=yourContaineReem.innerHTML.replace(/
/gi,
);
要删除除一个以外的所有内容,请执行以下操作:
$('br,[clear!="all"]').remove()
然后,要删除“清除=全部”,请执行以下操作:
$('br').removeAttribute('clear')
使用:
$(“br+br”).remove()//删除另一个标签前面的所有标签
使用正则表达式解析HTML非常糟糕,为此使用解析器这是迄今为止最简单的解决方案(有效)。非常感谢您的建议和演示!
$('br').removeAttribute('clear')
$("br+br").remove(); //Removes all <br> tags in front of another