【问题标题】:selecting element from a html string inside variable从变量内的 html 字符串中选择元素
【发布时间】:2017-10-13 17:59:16
【问题描述】:

我在这样的变量中有 html 字符串数据

 var htmlstring = "<div><div class='testdiv'>924422</div></div>"

我期望的是获取具有类的 div 的内容。在此示例中为 .testdiv 数据。

我该如何实现?

我知道一种方法:将此 html 字符串附加到 html 页面,然后访问。但我不想这样做,因为我正在使用 ajax 和服务器返回某种 html 字符串。现在我想获取特定内部的数据div.

那么有没有其他的办法呢?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    首先,您不要在 html 的类名中使用 .。要获取 html 字符串中该 div 的内容,您可以使用 jquery find 函数。

    var htmlstring = "<div><div class='testdiv'>924422</div></div>"
    alert($(htmlstring).find('.testdiv').html());
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      【解决方案2】:

      这是一种无需 jQuery 即可实现的方法。

      var htmlstring = "<div><div class='testdiv'>924422</div></div>";
      
      function getTestDiv(htmlString) {
        var textVal = null;
        var div = document.createElement('div');
        div.innerHTML = htmlString;
        var elements = div.childNodes;
        if (elements.item(0).childNodes.item(0).className === 'testdiv') {
          textVal = elements.item(0).childNodes.item(0).innerHTML;
        }
        return textVal;
      }
      
      console.log(getTestDiv(htmlstring));

      【讨论】:

        【解决方案3】:

        你可以这样做:

        console.log($(htmlstring).find("div.testdiv").text());
        

        【讨论】:

        • 字符串没有方法find()
        • 是的,只是忘记了$ 符号
        猜你喜欢
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多