preventDefault()不起作用

时间:2011-06-30 04:27:50

标签: jquery

我的目标是通过点击其标签来删除复选框检查的操作 以下是我的代码..

   $('TABLE TBODY TR TD').each(function()
   {
     $(this).find('input').each(function()
                            {
                                $('label for='+$(this)+'').preventDefault();
                            });
    });

以下是关联的HTML ..

  <table>
        <tr><input type="checkbox" id="a1"><div><label for="a1">ClickMe</lable></div></tr>
  </table>

请有人帮帮我。

2 个答案:

答案 0 :(得分:4)

preventDefault不是jQuery对象本身的方法。它是一个传递给给定事件处理程序的事件的方法。

此外,您的标签选择器语法错误(您忘记括号并尝试将jQuery对象与字符串连接),并且您不必要地嵌套了两个each es。

更好:

$("table tbody tr td input").each(function () {
    $("label[for='" + this.id + "']").click(function (event) {
        event.preventDefault();
    });
});

示例JSFiddle:http://jsfiddle.net/s9D4n/

可能更简单,但无可比拟的功能相同:

$("label").click(function (event) {
    event.preventDefault();
});

答案 1 :(得分:1)

您只需要从标签中删除for属性。

<label>ClickMe</label>
相关问题