2014-02-10 36 views
0

我的問題是一個非常普遍的問題: 當動態類被添加到元素(例如通過任何jQuery-ui的附加組件)時, 並且該元素上已經有類,是動態添加的類附加的預先添加到類的列表中?動態類:它們是前置還是後置?

爲什麼問題基於以下內容: 我試圖選擇所有具有以標識符(例如title_)開頭的dymanic類的元素,因此我只需編寫$('[class^title_]')。

我擔心的是磨磨蹭蹭另一個開發的可能性,並增加了$ .datepicker(例如)該元素從而增加另一個類/ ES該元素,如果這些類得到預先計劃在元素 - there goes my selector

在此先感謝

這裏是我的情況:顯示ColdFusion的CFLOOP創建複選框:

<cfset lbls = {"test1" = "Test one","test2" = "Test two","test3" = "Test three","test4" = "Test four","test5" = "Test five"}> 
    <cfloop collection=#lbls# item="num"> 
     <cfoutput> 
     <tr> 
      <td><label>#lbls['#num#']#</label> 
      <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_yes" ></td> 
      <td><input type="checkbox" class="form_test test_#num#" value="#num#" name="test_no" ></td> 
     </tr> 
    </cfoutput> 
    </cfloop> 

我正在創建動態複選框(是或否)5類動態(循環遍歷一個ColdFusion列表來創建它們)[它們不是收音機框,以允許用戶取消全部選中]。那麼我將如何引用「其他」複選框? 我不能使用兄弟姐妹(),因爲他們在單獨的TD。我可以去父母和選擇父母('th')。children(':checkbox')。不是(this),但我希望有一個更短的路。

+3

你的選擇器看起來像一個黑客而不是正確的做法。而你需要做這種選擇的事實可能意味着你有一個設計問題。 –

+0

@dystroy我欣賞被批評,但你可以建議一個更好的選擇器選項。 – Rob

+0

Alnitak做到了。但不知道完整的問題,我幾乎無法解決。想到不同的類('$('。title_a,.title_b,.title_c')'),這將更有效率地投票回答問題 –

回答

2

他們被追加,但你不應該依賴它。

一個更好的解決辦法是連接兩者的通用標識類,和一個更具體的類:

<elem class="title title_foo"> ... </elem> 

,然後如果你想所有這些元素都使用最少的類選擇了前者選擇:

$('.title') 

這將是方式比使用屬性匹配選擇器更有效和可靠。

+0

,但我認爲你的建議並不適用於我的情況。無論如何感謝 – Rob

+1

@Rob請隨時進入爲什麼這可能不適用。正如故事所說,依賴於類屬性中的條目順序聽起來像是一個設計問題。 – Alnitak

+0

我不想打擾,但既然你問:)我將它添加到我的上述問題 – Rob

相關問題