9

当条件为真时,如何退出每个函数?

这不起作用:

  $$('.box div').each(function(e) {
 if(e.get('html') == '') {
    e.set('html', 'test');
    exit;
 }
  });
4

2 回答 2

14

使用.some

  $$('.box div').some(function(e) {
     if(e.get('html') == '') {
        e.set('html', 'test');
        return true;
     } else
        return false;
  });

但也许你可以使用

  arr = $$('.box div[html=""]');
  if (arr.length > 0)
     arr[0].set("html", "test");
于 2010-05-11T11:29:35.267 回答
1

只是throw一些东西,catch它更高:

try {
  $$('.box div').each(function(e) {
    if(e.get('html') == '') {
      e.set('html', 'test');
      throw "break";
    }
  });
} catch (e) {
  if(e != "break") throw e;
}

但是使用.every和的组合.some将是一个更好的主意。

于 2010-05-11T11:46:04.833 回答