【问题标题】:What is the easiest way for navigating through a DOMString? [duplicate]浏览 DOMString 的最简单方法是什么? [复制]
【发布时间】:2014-03-19 06:40:22
【问题描述】:

假设我有一个DOMString,它很友好

"<!DOCTYPE html><html><div id="d1"><p>foo</p></div></html>"

我想将段落内容存储在一个变量中(比如pContent),这样

pContent == "foo"

你有什么建议?我只能使用 javascript 代码(如果需要,还可以使用完全用 .js 编写的库)。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    好吧,既然您提到了库的使用,您可以将字符串的内容传递给jQuery 并提取树。例如:

    var myString = '<!DOCTYPE html><html><div id="d1"><p>foo</p></div></html>',
        $myString = $(myString),
        para = $myString.find('p').text();
    

    您的变量 para 现在包含字符串 foo

    【讨论】:

    • 我想你的意思是$myString = $( myString ),对吧?顺便说一句,我希望你的建议能奏效,但似乎不是。我错了吗?
    • 谢谢,我确实是说$(myString)
    • 但剩下的部分是对的吗?你能再测试一下吗?我无法让它工作......
    • $(myString) 的返回值是 div#d1,您的查找查询应该只是 .find('p')。像这样$('&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;div id="d1"&gt;&lt;p&gt;foo&lt;/p&gt;&lt;/div&gt;&lt;/html&gt;').find('p').text();
    【解决方案2】:

    使用纯 JS:

    var str = '<!DOCTYPE html><html><div id="d1"><p>foo</p></div></html>';
    
    var htmlWrapper = document.createElement('html');
    htmlWrapper.innerHTML = str;
    var pNodes = htmlWrapper.getElementsByTagName('p');
    
    pContent = pNodes[0].innerText || pNodes[0].textContent;
    

    JSFiddle

    虽然,JQuery 会是一个更好的解决方案,但会添加很多您可能不需要的功能。

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 1970-01-01
      • 2013-11-26
      • 2011-10-06
      • 2010-09-08
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多