如何将href和数据切换应用于除其子元素之外的元素?

时间:2017-03-31 15:03:54

标签: jquery

除了tr之外,我想为.jill中的所有元素进行链接和数据切换。如何仅为此特定孩子删除链接和数据切换?

 $(".jill").removeAttr('data-toggle');
 $(".jill").removeAttr("href");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<table style="width:100%">
  <tr href="#" data-toggle="control-sidebar">
    <td class="jill">Jill</td>
    <td>Smith</td> 
    <td>50</td>
     <td>Eve</td>
    <td>Jackson</td> 
    <td>94</td>
  </tr>
</table>

我这样做的方式不起作用

2 个答案:

答案 0 :(得分:1)

我会扩展我的评论。

href不会应用于子元素,只会应用于父元素。因此,不能从孩子身上移除href,因为孩子没有那个属性。

所以你有几个选项,你可以在每个<td>中应用href和数据切换,除了你想要的那些。或者你可以用jquery设置这一切。我不确定你为什么要在jquery中这样做,但如果你动态生成这些行,你可以这样做,并使用

 .not('.jill') 
在您的选择器中

,然后执行类似

的操作
 .attr('href', '#')

设置href。

答案 1 :(得分:-1)

您应该为每个href设置data-toggletd属性,然后您只能为一个元素删除此属性。

<table style="width:100%">
  <tr>
    <td href="href-test" data-toggle="test-data-toggle" class="jill" >Jill</td>
    <td href="href-test" data-toggle="test-data-toggle">Smith</td> 
    <td href="href-test" data-toggle="test-data-toggle">50</td>
    <td href="href-test" data-toggle="test-data-toggle">Eve</td>
    <td href="href-test" data-toggle="test-data-toggle">Jackson</td> 
    <td href="href-test" data-toggle="test-data-toggle">94</td>
  </tr>
</table>
<a class="remove">Remove</a>

$(document).ready(function() {
$(".remove").on("click", function() {
    $(".jill").removeAttr('data-toggle');
    $(".jill").removeAttr("href");
});
});

请查看jsfiddle了解即时演示。