每到一行

时间:2013-02-18 10:00:01

标签: javascript jquery html

我有这样的代码:

$(this).each(function() {
    parse('button', $(this));
});

是否可以将each()最小化为一行?

此代码不起作用:

$(this).each(parse('button', $(this)));

3 个答案:

答案 0 :(得分:1)

就是这样:

parse('button', $(this));
//----------------^^^^----your selector group either with classname or tagName

更新

看看你是否有这个HTML:

<a href='#'>test link</a><br/>
<a href='#'>test link</a><br/>
<a href='#'>test link</a><br/>
<a href='#'>test link</a><br/>

这是jQuery:

function parseIt(b, a){
  return $(a).text(b);
}

$(function(){
   parseIt('New Text for Buttons', $('a'));
});

结果将是:http://jsfiddle.net/svwF9/

<a href='#'>New Text for Buttons</a><br/>
<a href='#'>New Text for Buttons</a><br/>
<a href='#'>New Text for Buttons</a><br/>
<a href='#'>New Text for Buttons</a><br/>

答案 1 :(得分:0)

Javascript不是基于行的,因此您可以在一行上有多个语句。您不能用函数调用替换函数引用,但仍然需要代码的那一部分:

$(this).each(function() { parse('button', $(this)); });

答案 2 :(得分:0)

如果这是一个很大的问题,为什么不改变parse以适应.each()的回调中的参数?这样的事情。

$(this).each(parse);

function parse(index, element) {
    var e = $(element);
    var type = e.prop('tagName').toLower();

    if(type == 'button') { 
        // parse button
    }
}