Jquery如何使用$(this)获取点击项的值?

时间:2016-08-11 03:45:34

标签: javascript jquery

我无法获得我点击的特定项目的价值

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $(this).click(function(){
            alert($(this).find("button").html());
        });
    });
    </script>
    </head>
    <body>
    <p>test 1</p>
    <p>test 2</p>
    <button>Yes</button>
    <button>No</button>
    </body>
    </html>
  • 我尝试了$(this).find("button").html(),但即使点击了第二个按钮(“否”),它也会返回第一个按钮的值(“是”)
  • $(this).find("p").html()相同,将返回1st

  • 的值
  • 如何使用$(this)获取我点击的项目的值?
  • 不建议我插入类或id,我不想触摸html。
  • 请协助,谢谢。

6 个答案:

答案 0 :(得分:2)

这是因为$(this).click事件监听器被添加到document对象而不是任何特定的html元素。

$(document).ready(function(){
    $('button,p').on('click',function(){
        alert($(this).html());
    });
});

plunker:https://jsfiddle.net/wx38rz5L/1743/

答案 1 :(得分:2)

如果您想点击每个按钮的html,请使用此功能。

  $('button').click(function () {
       alert($(this).html());
  });

答案 2 :(得分:2)

点击处理程序中的

this始终是文档(您已将处理程序绑定到该文档),因此无法提供帮助。相反,使用像

这样的东西
$(document).click(function(e){
    if ($(e.target).is("button"))
        console.log($(e.target).text());
    } else {
        console.log("not clicked (directly) on a button");
    }
});

或者更确切地说是

$(document).on("click", "button", function(e){
    console.log($(this).text());
});

答案 3 :(得分:0)

button上绑定点击事件,并使用innerHTML获取html元素的内容。

&#13;
&#13;
 $(document).ready(function() {
   $('button').click(function(event) {
     alert(event.target.innerHTML);
   });
 });
&#13;
<html>

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

<body>
  <p>test 1</p>
  <p>test 2</p>
  <button>Yes</button>
  <button>No</button>
</body>

</html>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

你必须检测哪个$(this)是绑定的?尝试这样的事情:

  1. 设置对象
  2. <button class="btn red btn-xs editbtn" type="button" value="${rs.id}" value="${rs.id}">

    1. 此对象的功能
    2. $(function(){ $('.editbtn').click(function(e){ common.showSpinner(); var idbbpdtd = $(this).val(); }); });

答案 5 :(得分:0)

试试这个。

        $(document).ready(function() {
            $(this).click(function(event) {
                    alert(event.target.innerHTML);
            });
        });

在jQuery中event.target总是引用触发事件的元素。