我正在使用Wikipedia API来获取已提供关键字的文章的第一段。
我必须从JSON响应中提取格式化文本,但在我将其显示在id为wiki的div中之前,会抑制一些不需要的信息,例如侧边栏(位于表格中,并且具有类名称信息框) - < / p>
$.getJSON("http://en.wikipedia.org/w/api.php?" +
"action=mobileview&format=json&page=" +
keyword + "&redirect=no§ions=0&prop=text&" +
"sectionprop=toclevel%7Clevel%7Cline%7Cnumber" +
"%7Cindex%7Cfromtitle%7Canchor&callback=?",
function(json) {
$('#wiki').html(json.mobileview.sections[0].text)
.find("dl,sup,.thumb,table.infobox,table.metadata")
.remove().end();
}
);
我从JSON响应中adapted the jQuery trick to remove tags/selectors,其中包含所请求的Wikipedia页面的HTML代码。我想在用HTML / JS编写的Windows 8商店应用程序中使用上面的代码片段。我希望将以下行转换为本机JavaScript并实现选择器删除代码,而不使用jQuery -
$('#wiki').html(json.mobileview.sections[0].text)
.find("dl,sup,.thumb,table.infobox,table.metadata")
.remove().end();
我是一个JavaScript新手。任何人都可以将此行转换为普通的JavaScript吗?
答案 0 :(得分:1)
var wiki = document.querySelector('#wiki');
wiki.innerHTML = json.mobileview.sections[0].text;
var content = wiki.querySelectorAll("dl,sup,.thumb,table.infobox,table.metadata");
for (var i = 0; i < content.length; i++) {
if (content[i].nodeName.toUpperCase() === "A")
content[i].parentNode.insertBefore(content[i].firstChild, content[i]);
content[i].parentNode.removeChild(content[i]);
}
这适用于大多数浏览器,包括IE8及更高版本。