我有这样的代码:
$(this).each(function() {
parse('button', $(this));
});
是否可以将each()
最小化为一行?
此代码不起作用:
$(this).each(parse('button', $(this)));
答案 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
}
}