body标签类ReGex

时间:2014-03-25 01:38:54

标签: javascript jquery html ajax regex

这是一个奇怪的请求。我正在使用jQuery获取一些整页html内容的AJAX请求。一旦我在对象var中捕获了内容,我想获取捕获内容的body标记类并用它替换当前的DOM body类。

由于内容是在var中而没有加载到DOM中,因此jQuery对它没用。我能想到的最好的工具是Regex。

我在互联网上找了几个小时,一无所获。

这是我能提出的最佳代码,但它不起作用......

var data = '<html class="please_god_no" id="shit"><body id="id_no" class="test22">test2 class="test1" "test3"<div id="bad" class="test5 test6">test4</div> </body></html>'; 
var arr = data.match(/<body class=("[\w\d]*")\sid=("[\w\d]*")>([\w\d]*)</body>/);
alert(arr);

我只想要我不需要或想要任何其他属性的课程。如何找到答案的任何帮助都将是最有帮助的。

1 个答案:

答案 0 :(得分:3)

嗯,这比我想象的要难,在处理body/html元素时,事情变得棘手。一个人需要像这样处理一个创建的html元素:

var s = '<html class="please_god_no"><body id="id_no" class="test22">test2 class="test1" "test3"<div id="bad" class="test5 test6">test4</div> </body></html>'; 
var htmlObject = document.createElement('html');
htmlObject.innerHTML = s;
var klass = htmlObject.querySelector("body").className;
document.querySelector('body').className = klass;

JSFiddle example here

这非常耗时。可能有更好的方法来实现这一点,为什么不用你想要的类渲染body?如果不这样做,为什么你不能只通过AJAX检索你想要的类?考虑在将来的版本中重构您的应用程序。