javascript - 用纯 JavaScript 编写 jQuery 语句

标签 javascript jquery

我正在使用维基百科 API 来获取已提供关键字的文章的第一段。

我必须从 JSON 响应中提取格式化文本,但在将其显示在 id 为 wiki 的 div 中之前抑制一些不需要的信息,例如侧边栏(位于表格中并具有类名信息框) -

$.getJSON("http://en.wikipedia.org/w/api.php?" +
            "action=mobileview&format=json&page=" +
            keyword + "&redirect=no&sections=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(); 
          }
);

我已经adapted the jQuery trick to remove tags/selectors来自包含所请求的维基百科页面的 HTML 代码的 JSON 响应。我想在用 HTML/JS 编写的 Windows 8 应用商店应用程序中使用上面的代码片段。我希望将以下行转换为 native JavaScript 并实现选择器删除代码而不使用 jQuery -

$('#wiki').html(json.mobileview.sections[0].text)
           .find("dl,sup,.thumb,table.infobox,table.metadata")
           .remove().end(); 

我是一个 JavaScript 新手。任何人都可以将此行转换为普通 JavaScript 吗?

最佳答案

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 及更高版本。

关于javascript - 用纯 JavaScript 编写 jQuery 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274678/

相关文章:

javascript - CKEditor 的上传图片插件有回调函数吗?

javascript - 在不使用 !important 修饰符的情况下进行更改 - 特异性规则?

赋值中的 Javascript AND 运算符

javascript - $ ("html, body").animate({scrollTop :0}, 'slow' );在我的页面上不起作用

javascript - 如何检查值是否是数字

javascript - 如何包装 jQuery 函数

javascript - 如果对象数组中的对象设置为未定义,则返回 true

javascript - 如何通过特定对象键对数组中的值求和?

jquery - 在 iPhone 上验证 PayPal 表单

javascript - jQuery 选择动态添加的表格行的 col-data