【问题标题】:javascript get html or text from divjavascript 从 div 获取 html 或文本
【发布时间】:2011-05-20 10:04:07
【问题描述】:

这在 jquery 中很容易,但是普通的 javascript 呢?

该代码适用于 Google 图片搜索 API。我想搜索与 html 匹配的图像,或者最好是 div 中的文本。

var searchThis = document.getElementById('imgToFind'); //get HTML, or text from div

// Find images
imageSearch.execute(searchThis); //search image

HTML

<div id="imgToFind">PlayStation</div>

结果应该是游戏机的图像。相反,我得到了这些

dosic ois - 123

IE8 javascript 返回 [object HTMLDivElement] 而不是 [

爱心之手

以及其他不相关的图像。我想知道谷歌搜索什么......认为第二个是给我一个提示。

【问题讨论】:

    标签: javascript image json api


    【解决方案1】:

    它的var searchThis = document.getElementById('imgToFind').innerHTML;

    仅提取您可以执行的文本:

    element = document.getElementById('imgToFind');
    var searchThis = element.textContent || element.innerText;
    

    【讨论】:

    • 谢谢! jquery中是否有.text()之类的东西?
    • 谢谢!我决定使用纯 js,因为 google api 不使用 jquery。以为我会在一个脚本中完成所有事情。我只需要几个简单的函数。
    • 不,您不需要解析器来从 DOM 元素中提取文本。您可以根据我的回答使用元素的 textContentinnerText 属性,或者遍历遇到的每个文本节点中的 DOM 和合并文本。这并不难,也不需要 jQuery。
    • @Tim:感谢启发我。我不知道。
    【解决方案2】:

    var searchThis = document.getElementById('imgToFind').innerHTML;

    将抓取元素的内容:)

    【讨论】:

    • 谢谢!好像你同时回答了大声笑。将投票回答奖金问题的人。 javascript中是否有.text()之类的东西,就像jquery中一样?
    • 抱歉,老实说我不太确定 :)
    【解决方案3】:

    如果您只想要元素中的文本,您可以在更符合标准的浏览器(即非 IE)中使用 textContent,在 IE 中使用 innerTextThey're not identical in all cases 但出于您的目的,它们很可能是。

    var el = document.getElementById("foo");
    var text = el.textContent || el.innerText;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 2021-03-07
      相关资源
      最近更新 更多