2014-09-01 80 views
0

我已經嘗試了來自谷歌的一些建議,但它不適合我。我有一個表,每個tr都有一個td,它的樣式設置爲none,即它是不可見的。如何選擇具有「數據名稱」的HTML元素

這是HTML:

<tr class="grid-row grid-row-selected"> 
<td class="grid-cell" data-name="ChkSelected" style="display: none;"><input id="chkBulk" name="chkBulk" type="checkbox" value="true"><input name="chkBulk" type="hidden" value="false"></td><td class="grid-cell" data-name="Id">6382</td><td class="grid-cell" data-name="MembershipNumber">74073565</td><td class="grid-cell" data-name="DateReceived">24/07/2014 00:00:00</td><td class="grid-cell" data-name="Fullname">Esther Hills</td><td class="grid-cell" data-name="ApplicationType">CEng</td><td class="grid-cell" data-name="FirstCheckDoneBy">chrisw</td><td class="grid-cell" data-name="AssignedStaffMem"><b> 
<select id="ddlStaff" name="ddlStaff"><option value="susang">Susan Goulding</option> 
<option value="kevinm">Kevin Murphy</option> 
<option value="fionas">Fiona Spinks</option> 
<option value="marilynw">Marilyn Wharton</option> 
<option value="pamellar">Pamella Rivadulla-Rey</option> 
<option value="SARAHS">Sarah Saw</option> 
<option value="warrenjl">Warren John-Lewis</option> 
<option value="carolinh">Carolin Harvey</option> 
<option value="RACHAELB">Rachael Boysen</option> 
<option value="katem">Kate MacGregor</option> 
<option value="christ">Christiaan Thelen</option> 
</select> 
      </b> 
</td><td class="grid-cell" data-name=""><b> <a href="#" onclick="AssignStaff(6382, &quot; Esther Hills &quot;, 6382)"> 
     Assign</a> </b> 
</td> </tr> 

我想改變這一點:

<td class="grid-cell" data-name="ChkSelected" style="display: none;"> 

因此,它是可見的,這樣用戶可以點擊複選框。

這是我的代碼

$(document).ready(function() { 
      if ($(AssignOnBulk).is(':checked')) { 
       $("#bulkAssign").show(); 
       alert($('td [data-name="ChkSelected"]').html()); 
       $('td.grid-cell [data-name="ChkSelected"]').show(); 
      } 
      else { 
       $("#bulkAssign").hide(); 
       $('[data-name="ChkSelected"]').hide(); 
      } 
     }); 

這條線應該用數據名稱的所有TDS設置爲風格= diplay:塊

$('td.grid-cell [data-name="ChkSelected"]').show(); 

任何人都知道,選擇與「數據元素「名稱」屬性?

+0

嘗試刪除td.grid-cell'和''之間的空間[數據-NAME =」 ...' – HenningCash 2014-09-01 11:32:17

回答

2
$('td.grid-cell [data-name="ChkSelected"]').show(); 

有一個空格在單元格和[,在jQuery選擇器Spac中e表示在子元素中搜索,因此您的選擇器正在搜索td內的元素,而[data-name="ChkSelected"]而不是td本身。

這應該爲你工作:

$('td.grid-cell[data-name="ChkSelected"]').show(); 
+0

謝謝,你的解釋讓我和你的代碼它看起來並不複雜,但當我不僅僅選擇一個ID或Class時,我總是忘記語法。 – 2014-09-01 11:43:33

0

嘗試用jQuery的.map.data方法,它將對所有TD工作

$("td").map(function(i,e){ 
    var dn = $(e).data("name"); 
    if(dn === 'ChkSelected') 
    $(e).show(); 
}); 

看到working DEMO與擴展的例子

0

用作

$('td[class="grid-cell"][data-name="ChkSelected"]').show(); 
相關問題