2012-07-09 127 views
4

我有以下代碼,我想選擇type = text和id爲'announcement_date'的元素。我如何在jQuery中做到這一點?請注意,這兩個元素具有相同的ID。這是我正在使用的遺留傳統ASP頁面。jQuery中的多重條件選擇器

<input type="hidden" name="announcement_date" id="announcement_date" value="1111"></input> 
<input type="text" name="announcement_date" id="announcement_date" value="323"></input> 
<input type="text" name="eff_date" id="eff_date" value="123"></input> 
<input type="text" name="end_date" id="end_date" value="123"></input> 

我試過了下面的選擇器,但未能選擇正確的元素。

$("#announcement_date type=text").addClass("error"); 
+3

ID **必須**唯一。 – j08691 2012-07-09 17:32:19

+1

請勿使用多個相同的ID值。這是無效的,具有不可預知的行爲。 – lonesomeday 2012-07-09 17:32:23

+1

我知道ID必須是唯一的。但這是在傳統的ASP應用程序,這是我不想在這個時候改變。 – Sunil 2012-07-09 17:36:03

回答

8

ID 是唯一的。

如果由於某種原因,你不能改變的HTML)雖然作爲

$('input[name="announcement_date"][type="text"]'); 
+0

它不起作用。我嘗試過這個。你也可以試試http://jsfiddle.net/MBHCz/55/ – Sunil 2012-07-09 17:45:31

+1

@Sunil,它不起作用,因爲你在''['它應該'] [' – 2012-07-09 17:48:01

+0

SORRY。你的語法起作用。謝謝。請忽略以上評論。 – Sunil 2012-07-09 17:48:10

1

你應該只使用id,因爲在HTML中有兩個元素相同的id是非法的。

(也就是說,解決您的HTML有唯一的ID,然後使用ID來選擇)

1

它不是有效的使用1個ID多個元素,你應該使用class代替:

$('.announcement_date[type="text"]').addClass('error') 

DEMO

1
<input type="text" name="announcement_date" 
class="announcement_date" value="1111" /> 

<input type="submit" name="announcement_date" 
class="announcement_date" value="Submit" /> 

然後

$(':text.announcement_date').addClass("error"); 

Demo