0

我有这样的代码:

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

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

此代码不起作用:

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

3 回答 3

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/>
于 2013-02-18T10:05:24.227 回答
0

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

$(this).each(function() { parse('button', $(this)); });
于 2013-02-18T10:01:56.837 回答
0

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

$(this).each(parse);

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

    if(type == 'button') { 
        // parse button
    }
}
于 2013-02-18T10:09:12.023 回答