JQuery传递HTML ID作为参数

时间:2013-09-10 20:35:27

标签: javascript jquery parameter-passing element

这是我的代码:

HTML

<img src"../MyPic_1" id="MyImg_1" onclick = "MyJQfunction($(this))">
<img src"../MyPic_2" id="MyImg_2" onclick = "MyJQfunction($(this))">
<img src"../MyPic_3" id="MyImg_3" onclick = "MyJQfunction($(this))">

JQUERY

<script>
function MyJQfunction(MyField)
{
  MyField.hide();
}
</script>

正如您所看到的,我正在尝试将HTML元素发送到我的JQ函数,因此它知道要隐藏什么。

我做错了什么?

注意:这只是我真正需要做的一个简单示例,我只是想避免包含您不关心的代码。谢谢!

3 个答案:

答案 0 :(得分:1)

您正在使用jquery,因此请附加事件处理程序,而不是使用onclick

<img src="../MyPic_1" id="MyImg_1" class="myIMage">
<img src="../MyPic_2" id="MyImg_2" class="myIMage">
<img src="../MyPic_3" id="MyImg_3" class="myIMage">

$(function(){
      $('.myIMage').on('click', MyJQFunction);
 }

function MyJQFunction()
{
   $(this).hide(); //here this represents the element clicked.
}

或经典方式;使用Function.call在调用时设置函数的上下文。

<img src"../MyPic_1" id="MyImg_1" onclick = "MyJQfunction.call(this)">

function MyJQFunction()
{
   $(this).hide(); //and this here is now the clicked element.
}

同样在您的代码中,您的图片代码似乎不正确,而MyJQfunctionMyJQFunction有套管(请注意f的大写)问题。检查控制台是否有错误。否则你的代码应该可以工作。

答案 1 :(得分:0)

你应该把它包装在jquery函数上,就像这样

function MyJQFunction(MyField)
{
  $(MyField).hide();
}

答案 2 :(得分:0)

这就是我要做的事情:

<img src="../MyPic_1" id="MyImg_1" class="image_to_hide"/>
<img src="../MyPic_2" id="MyImg_2" class="image_to_hide"/>
<img src="../MyPic_3" id="MyImg_3" class="image_to_hide"/>

...

<script>
    $(".image_to_hide").click(function(){
        $(this).hide();
    });
</script>