从易趣搜索中删除未指定运费的列表

Remove listings from Ebay search that have no shipping cost specified

我试图编写一个 greasemonkey 脚本来删除 Ebay 上显示 'Shipping not specified' 的搜索结果。下面的代码仅删除其中一些,有时甚至删除指定运费的代码,或者可能仅适用于 1 件商品。我什至不知道了。怎么了?

    // ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var li = document.getElementsByClassName('lvshipping');

    for(var i=0;i < li.length;i++)
    {
        if(li[i].innerHTML.indexOf("Shipping not specified") != -1)
        {
            console.log("Found!!!!!!!!!!!!!!!");
            li[i].parentNode.parentNode.parentNode.removeChild(li[i].parentNode.parentNode);
        }
    }
})();

保持简单。

尝试向后循环:

for (var i = li.length; i-->0 ;)

我认为 document.getElementsByClassName returns 你是一个动态的 NodeList。因此,当您从文档中删除当前 <li> 时,它也会从列表中删除,将下一个 <li> 移到位置 i。迭代器的 i++ 将跳过该元素而不对其进行处理。