我有一串像这样的HTML
var html = "<html><head></head><body class='getMe'></body></html>";
我想获取body标签类,我尝试这样做。
$(html).filter("body").attr("class")
$(html).find("body").attr("class");
但两种方法都返回undefined。有什么帮助吗?
答案 0 :(得分:1)
尝试
var html = "<html><head></head><body class='getMe'></body></html>";
var className = $("<html />", {"html":html}).find("body")[0].className;
console.log(className);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
答案 1 :(得分:1)
您不需要解析为html,而是尝试使用RegExp:
var html = "<html><head></head><body class='getMe'></body></html>";
var clazz = html.match(/body\sclass=['|"]([^'|"]*)['|"]/)[1]; //getMe
这里,String.match()
给出了给定模式的字符串数组。
body\sclass=['|"]([^'|"]*)['|"]
给出["body class='getMe'", "getMe"]
。使用()
,您可以抓住特定的群组。
还适用于多个类和其他属性:
var html = "<html><head></head><body class='getMe hey there' id='xyz' bgcolor='red'></body></html>";
var clazz = html.match(/body\sclass=['|"]([^'|"]*)['|"]/)[1]; //getMe hey there
被修改
为了获得属于以header-
开头的body标签的类:
var html = "<html><head></head><body class='getMe header header-1 header-two test'></body></html>";
var headers = html.match(/body\sclass=['|"]([^'|"]*)['|"]/)[1].match(/(header\-\w+)/g);
//["header-1", "header-two"]
答案 2 :(得分:-3)
您是否尝试将其置于变量中?找不到&#34;&#34;
的标签var MyClass = $(body).attr("class");
// or $(html).find(body).attr("class");