假设我想创建一个解析Twitter帐户的扩展程序。 我的manifest.json是;
{
"manifest_version": 2,
"name": "Twitter",
"description": "Stackoverflow",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"https://*/*",
"http://*/*"
]
}
我的popup.js是;
function httpGet(theUrl, callback){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
callback(xmlhttp.responseText);
}
}
xmlhttp.open("GET", theUrl, true );
xmlhttp.send();
}
window.onload = function(){
httpGet("https://twitter.com/StackCareers",function(result) {
var el = document.createElement('html');
el.innerHTML = result;
console.log(el.querySelector('.js-stream-item stream-item stream-item'));
});
}
我想将li对象作为具有js-stream-item stream-item stream-item
类的列表或如何解析具有类<ol>
的{{1}}
为什么stream-items js-navigable-stream
不起作用?如何将li对象作为列表?
答案 0 :(得分:0)
使用queryselector,如下所示:
var all=document.querySelector("ul>li.js-stream-item.stream-item");
这样说:使用类js-stream-item和stream-item绘制ul标记内的所有li元素。
答案 1 :(得分:0)
使用
querySelectorAll
选择元素,并使用Array.from
转换/转换array-like-object
到数组以使用Array#
方法。
function httpGet(theUrl, callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(xmlhttp.responseText);
}
};
xmlhttp.open("GET", theUrl, true);
xmlhttp.send();
}
window.onload = function() {
httpGet("https://twitter.com/StackCareers", function(result) {
var el = document.createElement('html');
el.innerHTML = result;
var allLiElems = el.querySelectorAll(".stream-items.js-navigable-stream li p");
Array.from(allLiElems).forEach(function(elem) {
console.log(elem.textContent);
})
});
}