2011-07-26 183 views
0

試圖做一些很明顯的,但真的有點它不做任何意義/不是爲我工作...jQuery選擇超過1個標準

的想法很簡單,當文件被加載的$(document) 。就緒()獲取具有屬性對他們的類型=「文本」,並添加CSS類「文本框」全部輸入元素...

<script type="text/javascript"> 
    $(document).ready(function() { 
     var textboxes = $(":input [type = 'text']"); 
     textboxes.each().addClass("textbox"); 
    }); 
</script> 

任何想法,爲什麼這不起作用? ...

編輯:

哇..還有很多東西需要學習jQuery的主義......開始jQuery的愛雖然:)它的簡單確實的伎倆。

+0

你不必遍歷元素。如果您在選擇器上執行方法,它們將(大部分時間)應用於選擇器匹配的所有元素。 – Wulf

+0

大壩你們快! – War

回答

6
$(document).ready(function() { 
    $("input[type='text']").addClass("textbox"); 
}); 

在元素input之前不需要冒號。

$("input[type='text']")將參考所有元素,因此沒有必要的each()

+0

美的東西... :) – War

2

在你的代碼的主要問題是,你有:input僞選擇和type ATTR選擇之間的空間。去除空間的作品。

也就是說,.each()意味着接收一個函數,該函數應該在匹配的集合中的每個元素上運行。然後它返回集合進一步鏈接。在你的例子中,給定的每個都沒用,所以我刪除它。進一步調整,使swlector比賽正常,但有效的應該給你想你想:

$(function() 
{ 
    $('input[type="text"]').addClass('textbox'); 
}); 
+0

啊很酷...謝謝你的建議... :) :) – War

0

也許我失去了一些東西,但不應該工作的呢?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input[type = 'text']").addClass("textbox"); 
    }); 
</script> 

是否有某種原因讓你第一次評估var?

+0

關心擴大driveby downvote ?? ??跆拳道 – Bosworth99

+0

@ Boswirth99:當然:正如已經提到的那樣,不需要每個()':) – PeeHaa

+0

你好...爲什麼downvote ..這是非常有效的事情要問...並回答..除了我之外,沒有任何理由試圖弄清楚我選擇的是什麼:)你有我的+1重新平衡:) – War