Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中用另一个替换一组HTMLBR元素——用jQuery解析html_Javascript_Jquery_Html_Html Parsing - Fatal编程技术网

Javascript 在jQuery中用另一个替换一组HTMLBR元素——用jQuery解析html

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()之类的东西;因为这样就没有任何中断标记,我需要在当前有三个中断标记

这就是我的问题。我的网站上有一个小的第三方服务,它从RSS提要生成一堆HTML,并在加载页面时将其粘贴到我的网页中。但是,当它生成HTML时,会插入一堆完全不必要的break标记。不幸的是,生成此代码的源文件位于第三方服务器上,而不是我的服务器上,因此我无法对其进行调整

因此,我试图在页面加载之前通过在body标记的onLoad=”“属性中使用一个小jQuery来调整HTML。但是,我不能简单地使用$('br').remove()之类的东西;因为这样就没有任何中断标记,我需要在当前有三个中断标记的每个位置都有一个中断标记

所以最终,我需要做的是提出一个jQuery语句来替换

<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