请告诉我为什么这不起作用!(基本的jquery)

use*_*757 5 html jquery

脚本

 function myfn(){
    var id= jQuery(this).find('input').val();
    alert(id);
  }
Run Code Online (Sandbox Code Playgroud)

HTML

 <div>
   <img src=".." onclick="myfn()" >
   <input type=hidden value=1 >
 </div>
Run Code Online (Sandbox Code Playgroud)

该函数是正确的,但id值显示未定义.我已经包含了所有必要的apis.

Adi*_*dil 3

您需要使用 this 将事件源传递给 myfn,您还需要 next 而不是 find,因为 find 将查找后代,而 next 将查找兄弟姐妹。

现场演示

JavaScript

 function myfn(obj){
    var id= jQuery(obj).next('input').val();
    alert(id);
  }
Run Code Online (Sandbox Code Playgroud)

在 HTML 中

 <div>
   <img src=".." onclick="myfn(this)" >
   <input type="hidden" value="1" >
 </div>
Run Code Online (Sandbox Code Playgroud)

作为补充说明

  • 关闭inputimg标记为/
  • 将属性值括在双引号中,例如typevalue

您可以使用 jQuery click 绑定事件,而不是您有问题的内联事件绑定。我建议您使用类来绑定事件,为此您需要将类分配给 img。这将使 this 和 $(this) 在处理程序中可用。

现场演示

网页

<img src=".." onclick="myfn(this)" class="my-class">
Run Code Online (Sandbox Code Playgroud)

JavaScript / jQuery

$('.my-class').click(function() {
    var id = jQuery(this).next('input').val();
    alert(id);
})
Run Code Online (Sandbox Code Playgroud)