創建

2013-04-04 62 views
0

很抱歉的可怕標題新的看法在使用上相似的看法,而不是ID級別,但基本上是我做的是,我有一個生成當按下加號按鈕骨幹視圖的模板。這是一個非常簡單的形式,它有一些文本輸入和選擇下拉菜單。我想通過突出顯示重複的區域來驗證表單。在我的下劃線模板目前,我有創建

<div id="#index1-<%=dataId%>"> 

所以我的模型,具有dataId屬性使id唯一。然後,我可以通過屬性選擇突出顯示紅色的div。當我搜索如何選擇以某些東西開始的ID時,我碰到了這篇文章:jquery how to select all the class elements start with "text-"?

作者討論瞭如何使用class代替。我在驗證時所做的是添加一類error風格,以突出紅色和東西。因此,通過添加用加號按鈕,頁面上的所有我的孩子的意見迭代的樣子:

 var lastIndex1; 
     _.each(this.childViews, function (childView) { 
      var dataId = childView.model.get('dataId'); 

      var index1 = childView.$('#index1-' + dataId).val(); 
      if (lastIndex1 == index1) { 
       $('#index1-' + dataId).addClass('error'); 
      } else { 
       lastIndex1 = index1; 
       $('#index1-' + dataId).removeClass('error'); 
      } 
     }); 

所以基本上,我最終通過我的看法迭代,並且如果當前視圖有問題,我加我error類。我想知道這個實現是否可以通過在html中使用某種類來改進,所以我不必使用dataId。

最初當我第一次寫的代碼,如果我沒有在結尾處添加數據ID,那麼就只強調了是不正確的(因爲多個項目具有相同的ID)的ID之一。班可以適用於這種情況嗎?提前致謝!

回答

0

如果您爲每個元素分配一個唯一的ID,那麼它應該和使用類名一樣工作。您的問題可能與您在childView函數中的第一行有關。您的dataId var可能每次獲得相同的值,而不是您正在迭代的當前項目。我不熟悉不喜歡,但你可能會嘗試像var dataId = this.model.get('dataId');