如何解析HTML字符串并选择角度?

时间:2017-06-19 23:09:13

标签: angularjs

我有一个返回长HTML字符串的ajax调用。我想做的是收集按钮标签的所有innerText。这可以使用angular而不使用jQuery来实现吗?

Ajax响应:

<div><div><button>Player 1</button><span></span><h1></h1><button>Player2</button></div></div> etc.. 
//Id like to have an array of ['Player1','Player2']

1 个答案:

答案 0 :(得分:1)

这可以使用Dom Parser使用vanilla JavaScript来完成。

function getButtonText(htmlString) {
    // create a document fragment from the html string
    let documentFragment = new DOMParser().parseFromString(htmlString, "text/html");

    // retrieve a list of buttons from the fragment
    let buttons = documentFragment.getElementsByTagName('button');

    // convert and return the buttons from DOMElements to Text
    return Array.from(buttons).map(button => button.innerText);
}

如果您定位的浏览器不支持Array.fromArray.prototype.map,则可以将最后一行更改为简单的for循环。