【问题标题】:Jquery: Get Head and Body Tag Contents from stringJquery:从字符串中获取头部和身体标签内容
【发布时间】:2017-02-07 11:43:41
【问题描述】:

我有如下字符串:

<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 标签的内容。有人可以帮忙吗?

【问题讨论】:

  • 您能展示一下到目前为止您尝试过的代码吗?这当然是可能的,但您可能想提供更多背景信息,以便我们提出更好的替代方法。
  • 改进了格式。

标签: javascript jquery html tags


【解决方案1】:

假设你的字符串变量是“s”所以代码是:

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

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

【讨论】:

    【解决方案2】:

    这里将字符串解析为 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);
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 谢谢@JimHawkins。以后会注意的。
    【解决方案3】:

    您也可以使用正则表达式,基本简单,使用它的另一个好处是您也可以获取任何其他 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>

    【讨论】:

      【解决方案4】:

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

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

      对于组合文本,请使用以下 jquery 表达式。

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

      【讨论】:

        猜你喜欢
        • 2012-11-08
        • 1970-01-01
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-17
        • 2012-01-19
        相关资源
        最近更新 更多