【问题标题】:Supposed to get the child but somehow gets the parent ID应该得到孩子,但不知何故得到了父母ID
【发布时间】:2015-12-10 01:45:27
【问题描述】:

美好的一天。我有一个代码。据我了解,clicked2 应该获得 id “Third”,因为它正在寻找孩子。但不知何故,它总是得到 id “First”。我如何获得“第三”?

<!DOCTYPE html>
<html>
<body>

    <div class="menu" id="First">
       <button id="Second">eee</button>
       <button id="Third">yyy</button>
    </div>
    <div class="holder"></div>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">

          $(document).on('click', '.menu', function(e) {
               var clicked = e.target.id || this.id;
               var clicked2 = e.target.children.id || this.id;
               var y = clicked2.replace(/\D/g, '');
               var x = clicked.replace(/\D/g, '');
               var w = 0;

               $('.holder') .append('<BR>'+clicked+'<BR>'+clicked2);

               });

   </script>

</body>
</html>

【问题讨论】:

  • 第一个问题:e.target.children.id 将始终未定义为 element.children 是 HTMLCollection,因此没有 ID - 所以,clicked2 只能是 this.id

标签: javascript jquery html children


【解决方案1】:

添加此var clicked2 = $(this).children("button").next().attr("id") 它将返回第二个按钮的 id。

试试这个

$(document).on('click', '.menu', function(e) {
var clicked = e.target.id || this.id;
var clicked2 = $(this).children("button").next().attr("id") || this.id;


var y = clicked2.replace(/\D/g, '');
var x = clicked.replace(/\D/g, '');
var w = 0;

$('.holder') .append('<BR>'+clicked+'<BR>'+clicked2);

   });

Demo Here

【讨论】:

    【解决方案2】:

    children()返回所有的孩子,所以你需要给正确的地址:

    var clicked2 = $(this).children().next().attr("id");
    

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      相关资源
      最近更新 更多