2016-08-23 70 views
0

使用MVC 5網站。我有一個特定的行,點擊一個按鈕,該行及其所有控件都被克隆。這裏是克隆的主行...通過特定類的控制循環時無法訪問attr

   <div class="row filter_row"> 
        <div class="col-lg-12"> 
         <div class="checkbox i-checks"> 
          <input type="checkbox" value=""> 
         </div> 
         <select data-placeholder="Choose..." class="xchosen-select"> 
          <option value="">First Name</option> 
          <option value="">Last Name</option> 
          <option value="">Account</option> 
         </select> 
         <input type="text" placeholder="" class="form-control"> 
         <select style="width: 50px; height: 35px;"> 
          <option value="">And</option> 
          <option value="">Or</option> 
         </select> 
         <select class="grouping" style="width: 40px; height: 35px;"> 
          <option value="1">1</option> 
          <option value="2">2</option> 
          <option value="3">3</option> 
         </select> 
        </div> 
       </div> 

行div的添加/克隆效果很好。現在,我想要做的是這個。當我在類別「分組」的下拉列表中選擇一個新項目時,將它與前一個「分組」下拉列表進行比較。如果它們相等,則使div的背景顏色成爲不同的「交替」顏色。 (基本上這樣做的目的是這是一種先進的數據過濾模式,我想對組進行顏色編碼,因此,如果前2個下拉列表爲組1,則背景爲白色,組2爲交替顏色,組3爲白色等等......只是爲了美觀地幫助用戶看到他的「羣」行。希望這是有道理的。)

問題是我似乎無法訪問類或id屬性等..隨着測試代碼我寫了這個:

$(".grouping").change(function() { 
    // loop thru all selecting dropdowns 
    $("select option:selected").each(function() { 
     alert($(this).attr('id') + '>>>' + $(this).text()); 
     if ($(this).hasClass('grouping')) { 
      // do the comparison, blah blah blah 
      alert($(this).val()); 
     } else { 
      // for debug 
      alert('class: ' + $(this).attr('class')); 
     } 
    }); 
}); 

的問題ATTR( 'ID')和attR( '類')顯示不確定。我可能做錯了什麼?我相信我「米試圖正確地訪問這些屬性?

其次,主循環,當然,它的循環直通全部所選下拉菜單。我想它像只通的循環使用」分組'類。有沒有辦法做到這一點更有效的方式?謝謝!

+2

您正在循環選定的選項。你真的想要嗎? – Shyju

+0

「_I似乎無法訪問類或id attributes_」您的意思是選擇或選項標籤的屬性? –

+3

你的'選項'沒有'id'和'class'屬性 –

回答

1

您遍歷所有選定option領域。

您需要遍歷select元素。

所以,我認爲你只需要改變這一行:

$("select option:selected").each(function() { 

要這樣:

$("select").each(function() { 

希望它可以幫助你。

1

我只想評估具有每個下拉列表中選擇值(S)‘分組’級。

你可以使用類選擇器來定位元素,然後使用獲取選定的值

$(".grouping").each(function() { 
    alert($(this).val()); 
});