2010-04-14 156 views
3

對不起,如果這個問題很容易回答,但是我對JQuery有點新意,並且我有一個緊迫的截止日期。JQuery:包含一些文本但不包含其他文件的選擇器

我找具有此格式的文本元素選擇:

id = "FixedName_#" 

「FixedName」永遠是「FixedName」,但我只想要找到的元素,其中#是積極的。因此,我想查找「FixedName_1」和「FixedName_2」,但跳過「FixedName_-1」和「FixedName_-2」。

謝謝!

更新 結束了這樣的事會(修改了用於顯示實際的代碼這裏,所以不知道這工作原理如圖所示):

$("input[id*='FixedName_']").each(function() { 
    if ($(this).attr("id").charAt(10) == "-") { 
     //Do something. 
    } else{ 
     //Do something else. 
    } 
}); 

回答

2

我不確定你可以用一個選擇器做到這一點。我會做的就是選擇所有具有開始FixedName_像這樣的ID的元素:

$("[id|=FixedName_#]") 

然後你就可以通過循環的結果並檢查#後面的值。

編輯:試試這個:

$("[id^=FixedName_#]").each(function(){ 

var controlNum = parseInt(this.id.replace('FixedName_#','')); 
    if (controlNum >= 0){ 
    //...... 
    } 
}); 
+0

我喜歡這個解決方案迄今爲止最好的,因爲我不必包含額外的正則表達式代碼。你可以在選擇器上使用選擇器而不是循環遍歷結果嗎?例如,我將有一個收集所有「FixedName_」元素的變量,然後在該變量上運行選擇器以僅選擇帶有「 - 」字符的選擇器? – Ocelot20 2010-04-14 17:31:49

1

添加this attribute selector後,您可以這樣做:

$("*:regex(id, ^FixedName_\\d+$)") 

也將匹配FixedName_0。

0

你可以嘗試添加類「FixedName」,然後添加數量的相對所以你可以這樣做:如果($(「FixedName。」)。 ATTR(「相對」)> 0){...}

1

此存儲的元素,他們的ID不包含 - 註冊

var elems = $('input:not([id*=-])'); 

alert(elems.size()); 
0

有沒有可能產生的文本框可以設置代碼類的屬性,如class =「pos itive/negative「基於id值?爲了能夠選擇$('。positive')...

相關問題