Jquery:从字符串中获取头部和正文标记内容

时间:2017-02-07 11:43:42

标签: javascript jquery html tags

我有一个如下字符串:

<head>
    This is the Head
</head>
<body>
    <div>
        <div>
            <p> Body Content <br /></p>
            <p>&nbsp; Hello World <br /></p>
        </div>
    </div>
</body>

它有头部和身体标签。现在我想要使用jquery的head标签和body标签的内容。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

假设您的字符串变量为“s”,那么代码为:

var html = document.createElement('html');
html.innerHTML = s;

var head = $(html).find('head:first');
var body = $(html).find('body:first');

答案 1 :(得分:0)

这里将字符串解析为html对象,然后您就可以访问这些元素。

这是相同的代码

var str = "<head>This is the Head</head><body><div><div><p> Body Content <br /> </p><p>&nbsp; Hello World <br /></p> </div></div></body>";


//This will parse the string to HTML
var htmlString = $.parseHTML(str);

//To get the Body content
console.log(htmlString[1].innerHTML);

//To get the HTML Tag Content
console.log(htmlString[0].data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:0)

你也可以使用正则表达式,基本和简单以及使用它的另一个好处是你也可以获得任何其他的html。请找到以下代码:

var html = '<head>\
    This is the Head\
</head>\
<body>\
    <div>\
        <div>\
            <p> Body Content <br /></p>\
            <p>&nbsp; Hello World <br /></p>\
        </div>\
    </div>\
</body>';
    
var reg = /\<head[^>]*\>([^]*)\<\/head/m;
var head = html.match( reg )[1];

var reg2 = /\<body[^>]*\>([^]*)\<\/body/m;
var body = html.match( reg2 )[1];

document.getElementById("Head").innerHTML = head;
document.getElementById("body").innerHTML = body;
.head{
  border:1px solid red;  
}
.body{
  border:1px solid red;  
}
<div class="head">
<h1>
Heading
</h1><br />
<div id="Head">
</div>
</div> <br />
<div class="body">
<h1>
Body
</h1> <br />
<div id="body">
</div>
</div>

答案 3 :(得分:-1)

您是否考虑过尝试使用这些jquery表达式。

$('head').html();
$('body').html();

用于组合文本以下jquery表达式。

$('head').text();
$('body').text();