从易趣搜索中删除未指定运费的列表
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++
将跳过该元素而不对其进行处理。
我试图编写一个 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++
将跳过该元素而不对其进行处理。