javascript - jQuery(this).attr ('id' ) 返回未定义

标签 javascript jquery html

我正在尝试在单击时从 anchor 标记获取值/ID。代码对我来说似乎很好,但我不知道问题出在哪里;它每次都返回undefinednothing

还尝试了 jQuery(this).attr("value");jQuery(this).val();jQuery(this)。属性(“id”)

我试过的代码如下:

<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

</head>
<body>

    <ul class="switch">
        <li value="1"><a href="#" value="1" id="1">link 1</a></li>
        <li value="2"><a href="#" value="2" id="2">link 2</a></li>
        <li value="3"><a href="#" value="3" id="3">link 3</a></li>
        <li value="4"><a href="#" value="4" id="4">link 4</a></li>
    </ul>

    <div class="clickedId"></div>

    <script>
        jQuery(document).ready(function() {
            jQuery('ul.switch').click('a', function(evt) {
                evt.preventDefault();

                var id = jQuery(this).attr("value");

                jQuery('.clickedId').append(id+'<br>');
            });
        });
    </script>
</body>
</html>

最佳答案

你在 ul 上绑定(bind)事件,而不是在 anchor 上。因此,事件处理程序中的 $(this) 指的是 ul,而 ul 没有 id 并且它将返回 undefined

Demo

jQuery('ul.switch a').click(function(evt) {
  evt.preventDefault();

  var id = jQuery(this).attr("value");
  jQuery('.clickedId').append(id + '<br>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul class="switch">
  <li value="1"><a href="#" value="1" id="1">link 1</a>

  </li>
  <li value="2"><a href="#" value="2" id="2">link 2</a>

  </li>
  <li value="3"><a href="#" value="3" id="3">link 3</a>

  </li>
  <li value="4"><a href="#" value="4" id="4">link 4</a>

  </li>
</ul>
<div class="clickedId"></div>

你混淆了 clickon,你可以使用 on如下

jQuery('ul.switch').on('click', 'a', function(evt) {

关于javascript - jQuery(this).attr ('id' ) 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32709408/

相关文章:

javascript - 如何使用 javascript 在 Google Drive 上创建文件夹

javascript - 有没有办法在使用 AJAX 的父级之前在 div 中加载隐藏的 div?

javascript - 每次点击淡入div

c# - 显示验证消息

html - 如何在不使用位置和边距的情况下将元素定位在另一个元素之上?

php - 为什么内置于高级模板中的电子邮件脚本无法正常工作?

javascript - 我的 JavaScript 代码可以在运行时被(恶意)用户编辑吗?

javascript - Parse..com 云代码 : Trying to update user's column but nothing happens

javascript - Jquery onchange 函数不会在隐藏文件控件上调用

html - 如何在 PRE 或类似的东西中显示原始 HTML 代码但不转义