我已经尝试了谷歌的一些建议,但它不适合我。我有一个表,每个tr有一个td,其样式设置为none,即它是不可见的。
这是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, " Esther Hills ", 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();
}
});
这一行应该将所有带有data-name的tds设置为style = diplay:block
$('td.grid-cell [data-name="ChkSelected"]').show();
任何人都知道选择具有“数据名称”属性的元素吗?
答案 0 :(得分:2)
$('td.grid-cell [data-name="ChkSelected"]').show();
在单元格和[之间有一个空格,在jquery选择器空间中意味着在子元素中搜索,因此您的选择器正在使用[data-name="ChkSelected"]
而不是td本身搜索td内的元素。
这应该适合你:
$('td.grid-cell[data-name="ChkSelected"]').show();
答案 1 :(得分:0)
使用jQuery .map
和.data
方法进行尝试,它适用于所有td
$("td").map(function(i,e){
var dn = $(e).data("name");
if(dn === 'ChkSelected')
$(e).show();
});
请参阅working DEMO
扩展示例
答案 2 :(得分:0)
用作
$('td[class="grid-cell"][data-name="ChkSelected"]').show();