如何选择具有"数据名称"的HTML元素

时间:2014-09-01 11:26:26

标签: jquery html5 custom-data-attribute

我已经尝试了谷歌的一些建议,但它不适合我。我有一个表,每个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, &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();
            }
        });

这一行应该将所有带有data-name的tds设置为style = diplay:block

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

任何人都知道选择具有“数据名称”属性的元素吗?

3 个答案:

答案 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();