如果不满足条件,则返回默认值

时间:2013-11-02 20:05:11

标签: javascript jquery

我有这样的HTML:

<div id="MyArea">
    <div class="data-content">The content is not satisfied </div>
    <div class="data-content">[value] </div>
    <div class="data-content">[valueme] </div>
</div>

现在,我希望在每个类(Function)中运行data-content括号。其他类(没有括号),保持默认值,不要改变任何东西。我使用下面的脚本,但这是错误的。

$("#MyArea .data-content").each(function() {
    var content = $(this).html(),
        values = content.match(/[^[\]]+(?=])/g);

    if (value !== "") {
        $(this).closest(".data-content").myFunc({
            //Run myFunc in this .data-content if values has brackets.
        }
        else { 
            //return the default value and do not change the content inside of that class if it has no brackets. How can I do that?}
        });
    }
); 

1 个答案:

答案 0 :(得分:2)

鉴于众多语法问题,我不确定你要在这里做什么,但你可以在条件中使用test来查看正则表达式是否与任何内容匹配。此外,return循环中的每次迭代都不能$.each,因此这是多余的。

试试这个:

$("#MyArea .data-content").each(function () {
    var content = $(this).html();
    if (/[^[\]]+(?=])/g.test(content)) {
        $(this).closest(".data-content").css('color', '#C00');
    };
});

Example fiddle

在我的示例中代替.css(),您可以调用您的函数。