2011-06-24 86 views
2

我正在尝试执行我的第一个greasemoney脚本。我对jQuery和JavaScript相当陌生,所以对我来说很简单。帮助排除第一个Greasemoney脚本故障

这是我到目前为止。

setTimeout(function(){ 
    $('a').each(function(i){ 
     if(this.href && this.innerHTML.indexOf('load more comments') > -1){ 
      toggle(this); 
     } 
    }); 
}, 4000); 

这里的目标是点击所有这样的样本reddit的页面上的“装载更多评论”页面,并循环做每四秒。

http://www.reddit.com/r/AskReddit/comments/i7hb5/why_assign_gender_to_public_bathrooms_if_there_is/

现在,什么都不会发生的。我不确定如何解决问题。脚本是不是被启动了? indexOf是单击链接的正确语法吗?

是否有一个在线指南,可以通过编写像这样的基本greasemoney/jquery脚本来走动我?

任何帮助非常感谢。谢谢!

编辑:

基于托默勒格的回应,

// ==UserScript== 
// @name   load all page comments 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 
// @namespace  none 
// @include  http://www.reddit.com/* 
// ==/UserScript== 

setInterval(function() { 
    $('a:contains(load more comments)').click(); 
}, 4000); 

回答

2

它更容易比你想象:

setInterval(function() { 
    $('a:contains(load more comments)').click(); 
}, 4000); 

请注意,我用setInterval代替setTimeout

jQuery的工作在这样的方式click称为每匹配的元素,即有在这种情况下没有必要each()。另请参阅docs on the :contains selector

+0

这太清洁了,谢谢。所以链接甚至不需要加载到数组中? – some1

+0

'$('a:contains(载入更多评论)')* *已经返回一个数组。 – Tomalak

+0

我使用greasemonkey标题更新了原始帖子。那些看起来对你是否正确?它正在加载jquery 1.3.2,因为显然有更新版本的问题。是否有任何事情需要触发脚本或将自动运行? – some1