我有这样的代码:
$(this).each(function() {
parse('button', $(this));
});
是否可以最小each()
化为一行?
此代码不起作用:
$(this).each(parse('button', $(this)));
我有这样的代码:
$(this).each(function() {
parse('button', $(this));
});
是否可以最小each()
化为一行?
此代码不起作用:
$(this).each(parse('button', $(this)));
只是这个:
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/>
Javascript 不是基于行的,因此您可以在一行中有多个语句。你不能用函数调用替换函数引用,你仍然需要那部分代码:
$(this).each(function() { parse('button', $(this)); });
如果这是一个很大的问题,为什么不改变parse
以适应.each()
回调中的参数呢?像这样的东西。
$(this).each(parse);
function parse(index, element) {
var e = $(element);
var type = e.prop('tagName').toLower();
if(type == 'button') {
// parse button
}
}