2011-08-30 23 views
0

我想選擇和元素稱爲「validate_me」,但我不想包含任何元素,如果他們有文本已經在裏面他們,但我被困在jquery上。它看起來像「:contains()」可以做的伎倆,但我不想搜索一個特定的字符串,我只是想「排除」任何已經有文本的元素。需要幫助搞清楚如何排除選擇一個元素,如果它有文本

我希望這是有道理的......我該怎麼做?

在此先感謝。

這是我嘗試過,但它顯然是行不通的:

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

你的意思是輸入有一個空的'value'屬性? – alex

回答

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

Awsome謝謝.... stackoverflow是awsome!謝謝您的幫助。 – Ronedog

+0

很高興爲您服務! –

+0

它在哪裏選擇'select'元素? – ShankarSangoli

1

試試這個

Wroking demo

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

這個演示可以。 –

+0

@Ronedog - 你試過這個嗎? – ShankarSangoli

0

和一個以上的解決方案的份上,你可以隨時把數組中的你不想要的節點,並傳遞給。不是()方法

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"); 
相關問題