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

   $('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>

请有人帮助我。

最佳答案

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();
});

关于jquery - preventDefault() 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6529932/

10-12 00:19
查看更多