jquery Uncaught SyntaxError:非法的break语句

时间:2015-07-28 10:18:45

标签: javascript jquery loops break

  

Uncaught SyntaxError:非法中断语句

这是我试图打破循环时得到的警告。当条件满足时,我想要做什么打破循环。在示例代码中,我有两个活动类,我想在遇到第一个活动类时完全脱离循环。

<ul>
    <li id="foo1" class="bar">1</li>
    <li id="foo2" class="bar">2</li>
    <li id="foo3" class="bar">3</li>
    <li id="foo4" class="bar">4</li>
    <li id="foo5" class="active">5</li>
    <li id="foo6" class="bar">6</li>
    <li id="foo7" class="bar">7</li>
    <li id="foo8" class="active">8</li>
</ul>

JS

$(function(){
    function setup(){
        var x,y,z;
         $("ul li").each(function(){
             //console.log($(this)[0].className);
             if($(this)[0].className === 'active'){
                 x = $(this)[0].className;
                 y = $(this)[0].tagName;
                 z = $(this)[0].id;
                 break;
             } 
         });
        var return_values = {
            class : x,
            tag : y,
            id : z
        }
        return(return_values);
    }
    var data = setup();
    console.log(data.class,data.tag,data.id);
});

JSFIDDLE here

1 个答案:

答案 0 :(得分:7)

退出each()使用return false中的匿名函数。另请注意,使用DOMElement创建jQuery对象然后访问DOMElement的属性是完全多余的。试试这个:

$("ul li").each(function() {
    if (this.className === 'active') {
        x = this.className;
        y = this.tagName;
        z = this.id;
        return false;
    } 
});