2014-08-27 49 views
1

我正在創建一個基本的問題應用程序,以更好地理解骨幹牽線木偶。我是我的自由文本問題,現在使用相同的"#question-number-range ID來設置用戶在進行調查時可以輸入的數字範圍。然後我分割範圍並相應地分配最小/最大值。el骨骼木偶目標元素與jQuery

這適用於第一個自由文本問題視圖。但是,當我嘗試在一秒鐘內做同樣的事情時,它最終會設置爲第一個最小/最大值,因爲它們具有相同的ID。

我在想什麼 - 有沒有辦法像$(@el < '#question-number-range')那樣只針對當前視圖的el中的輸入,而不是任何具有該id的輸入?

還是我完全去解決這個錯誤,需要動態創建ID?

+0

如果你有'id'屬性重複,那麼你沒有有效的HTML和各種意想不到的事情會發生。使用一個類,然後你應該可以用'@ $('。whatever-the--''')來查找元素。 – 2014-08-27 19:53:29

+0

這是完全正確的。如果你想把它作爲答案,我會給你信用! ;) – 2014-08-27 23:05:42

+0

所以基本上只是爲了我的理解。只要我做了@ $,它會在該視圖中爲我提供該類的元素? – 2014-08-27 23:06:28

回答

2

一個id attribute是:

爲元素的唯一標識符。

還有必須不是多個文件中的元素具有相同的id值。

所以如果你有重複的id s那麼你真的沒有(有效的)HTML和各種奇怪的事情會發生。

更好的方法是使用class來識別感興趣的元素。然後,你可以使用@$('.whatever-the-class-is')找到您的視圖的el中的元素:(jQuery的)

$view.$(selector)

如果jQuery是包含在頁面上,每個視圖具有運行查詢一個$功能在視圖的元素中作用域。如果使用這個範圍化的jQuery函數,則不必使用模型ID作爲查詢的一部分來提取列表中的特定元素,並且可以更多地依賴HTML類屬性。這等同於運行:view.$el.find(selector)

所以@$(x)相同@el.find(x)並會限制你搜索到的視圖。