如果元素中包含文本,需要帮助确定如何排除选择元素

时间:2011-08-30 23:31:17

标签: jquery

我想用一个名为“validate_me”的类来选择和元素,但我不想包含任何元素,如果它们已经在其中有文本,但我仍然坚持jquery。它看起来像“:contains()”可以做到这一点,但我不想搜索特定的字符串,我只是想“排除”任何已经包含文本的元素。

我希望这是有道理的......我怎么能这样做?

提前致谢。

这是我之前尝试过的,但显然不起作用:

$("input.validate_me:not(:contains('any text is allowed')),select").addClass("ui-state-error"); 

4 个答案:

答案 0 :(得分:2)

$('input.validate_me').filter(function() { return $(this).val() == ""; }).addClass("ui-state-error");

答案 1 :(得分:1)

试试这个

Wroking demo

$(function(){
    $("input.validate_me").filter(function(){
        return !$(this).val();
    }).add("select").addClass("ui-state-error"); 
});

答案 2 :(得分:0)

$('input').each(function() {

    if ($(this).val() != '') {

        $(this).addClass("ui-state-error");
    }
});

http://jsfiddle.net/Anank/

答案 3 :(得分:0)

并且为了多个解决方案,您始终可以将不需要的节点放在数组中并将其传递给.not()方法

http://jsfiddle.net/SNXzU/

var nodeArray = [];
var nodeList = $("input.validate_me");

for (var i = 0; i < nodeList.length; i++ )
    if ($("input.validate_me")[i].value.length > 0)
        nodeArray.push($("input.validate_me")[i]);

nodeList.not(nodeArray).addClass("ui-state-error");