2013-03-22 62 views
0
之間

enter image description herejQuery的如何檢查在

我怎麼打勾的代碼6000的複選框,它會自動檢查複選框在7000之間?這也是進入7000和7004之間,如果7000被選中

$('.mGrid tr').each(function() { 
    if (!this.rowIndex) return; 
    if ($(this).find("td:eq(2)").text() =='S') { 
     $(this).css({ 
      'font-weight': '800', 
      'background-color': '#DBFF94', 
      'border' : '2px solid black' 
     }); 

    } 
}); 
<table class="mGrid" cellspacing="0" rules="rows" border="1" id="GridView1" style="border-collapse:collapse;"> 
      <tr align="left"> 
       <th scope="col"> 
           <span class="chkHeader"><input id="GridView1_chkAll" type="checkbox" name="ctl00$MainContent$nnn$GridView1$ctl01$chkAll" /></span> 
          </th><th scope="col">Code</th><th scope="col">Sub Code</th><th scope="col">Title</th><th scope="col">Description</th><th class="HiddenColumn" scope="col">&nbsp;</th> 
      </tr><tr> 
       <td> 
           <span class="chkItem"><input id="GridView1_chkCheck_0" type="checkbox" name="ctl00$MainContent$nnn$GridView1$ctl02$chkCheck" /></span> 
          </td><td>1000</td><td>S</td><td>Main</td><td>Summary of everything </td><td class="HiddenColumn"><a href="javascript:__doPostBack(&#39;ctl00$MainContent$nnn$GridView1&#39;,&#39;Select$0&#39;)">Select</a></td> 
      </tr><tr class="alt"> 
       <td> 
           <span class="chkItem"><input id="GridView1_chkCheck_1" type="checkbox" name="ctl00$MainContent$nnn$GridView1$ctl03$chkCheck" /></span> 
          </td><td>6000</td><td>S</td><td>Report</td><td>All Reports</td><td class="HiddenColumn"><a href="javascript:__doPostBack(&#39;ctl00$MainContent$nnn$GridView1&#39;,&#39;Select$1&#39;)">Select</a></td> 
      </tr> 
     </table> 

添加HTML部分,有點凌亂有點

####更新

如果我要選擇的,例如在1 ,選中6001-6005,代碼6000複選框會自動檢查,我該怎麼做? ('tr')。prevUntil('tr.lights')。css('background-color','black');我嘗試prevuntil,但它突出顯示幾乎所有prev $(this).closest('tr')。prev('tr.lights')。css('background-color','black');這隻能凸顯,如果它靠近綠色行

+2

您需要呈現怎樣的HTML也是結構化的。 – adeneo 2013-03-22 08:10:34

+3

...否則我們將無法正確幫助您。無論如何,解決方案可能涉及http://api.jquery.com/nextUntil/。 – 2013-03-22 08:11:38

+0

現在看下去,直到現在,嗯,它看起來像我在找什麼,但需要研究這個 – Se0ng11 2013-03-22 08:22:05

回答

0

如果您的內容創建dynamicaly你可以自定義屬性添加到分組元素,如data-group="6000"所以你CA做這樣的事情:

$('[data-group]').click(function(){ 
$("[data-group='"+this.attr('data-group')+"']").attr('checked','checked'); 
}); 
0

退房工作版本http://jsbin.com/edamuh/3/edit

如果你有以下的HTML(注意輸入是兄弟姐妹)

1<input type="checkbox"/> 
    2<input type="checkbox"/> 
    3<input type="checkbox"/> 
    4<input type="checkbox"/> 
    5<input type="checkbox"/> 
    6<input type="checkbox"/> 
    7<input type="checkbox"/> 
    8<input type="checkbox"/> 
    9<input type="checkbox"/> 
    0<input type="checkbox"/> 

你可以使用下面的代碼片段檢查複選框,直到下一個檢查一個

$('input').click(function(){ 
    var $t = $(this); 
    var unchkds = $t.nextUntil('input:checked', 'input[type="checkbox"]'); 
    var allInputsAfterN = $t.nextAll('input').length; 
    if(unchkds.length > 0 && unchkds.length != allInputsAfterN) { 
     console.log(unchkds.length + " unchecked after. " + allInputsAfterN + " total after"); 
     unchkds.prop('checked', true); 
    } 
    }); 

你必須做同樣的事情檢查複選框向後(使用prevUntil & prevAll)

+0

awww,覺得這麼舒適,需要研究使用這prevUntil&prevAll – Se0ng11 2013-03-22 08:57:15