【问题标题】:Getting content inside tags inside string [duplicate]获取字符串内标签内的内容[重复]
【发布时间】:2018-02-12 12:06:36
【问题描述】:

这是我的字符串

var a ="<div id='render'>First<div class='render1'>Second</div></div>";

我需要获取renderrender1 中的文本

我该怎么做?

我试过了

var a ="<div id='render'>First<div class='render1'>Second</div></div>";
alert(a.getElementsByTagName("render")[0].innerHTML);

这是我的Fiddle

但是我遇到了类似的错误

未捕获的类型错误:a.getElementsByTagName 不是函数

我该怎么做

注意:

这不是来自站点的内容,我正在尝试从其他语句中获取文本,因此我将响应分配给变量并对其进行处理。

我只需要使用 javascript 来执行此操作

【问题讨论】:

  • 你是在浏览器上做这个吗?
  • @T.J.Crowder 不,我是在脚本标签内做的
  • 怎么不在浏览器上?
  • 对不起,我虽然你在问我是否在控制台中这样做,但我只是在浏览器中尝试
  • a 是一个字符串,而不是一个 HTML-DOM 对象。字符串没有函数getElementsByTagName

标签: javascript html


【解决方案1】:

字符串没有getElementsByTagName。但是您可以轻松地使用浏览器解析字符串,然后在结果上使用它:

var a = "<div id='render'>First<div class='render1'>Second</div></div>";
// Create an element to use to parse it
var div = document.createElement('div');
// Parse it
div.innerHTML = a;
// Find all divs in the result and show their innerHTML
Array.from(div.querySelectorAll("div")).forEach(function(div) {
    console.log(div.innerHTML);
});

如果您想提取其他信息,当然可以在forEach 回调中进行更高级的处理。

【讨论】:

  • @SA__:是的。我建议你通读 DOM API:Spec, MDN
  • 第一次迭代给First&lt;div class="render1"&gt;Second&lt;/div&gt;是否可以单独拥有first和second?
  • @SA__:再次:是的。我建议你通读 DOM API:Spec, MDN
【解决方案2】:

未捕获的类型错误:a.getElementsByTagName 不是函数

是的,在这种情况下它不是一个函数,因为你试图在字符串而不是元素上调用函数。查看 mdn 以获得更多说明: https://developer.mozilla.org/pl/docs/Web/API/Element/getElementsByTagName

更重要的是:'render' 无论如何都不是标签。您应该使用 getElementById 函数来获取外部 div。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 2015-07-14
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多