获取内部字符串内的标记内容

时间:2017-09-04 09:14:19

标签: javascript html

这是我的字符串

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

但是我得到了像

这样的错误
  

未捕获的TypeError:a.getElementsByTagName不是函数

我该怎么做

注意:

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

我只需要使用javascript

2 个答案:

答案 0 :(得分:4)

字符串没有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回调中进行更高级的处理。

答案 1 :(得分:0)

未捕获的TypeError:a.getElementsByTagName不是函数

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

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