0

这个来自 RoToRa 的 javascript 代码可以满足我的需求:http://jsbin.com/ayoqem/7/edit#javascript,html,live 什么 jQuery 代码可以完成同样的任务?哪个更好?

4

3 回答 3

1

当然,如果您不需要使用 jQuery,那么您已经拥有的 javascript 就可以了。但是,如果您使用 jQuery,那么您只需 3 行代码即可完成相同的任务。

http://jsfiddle.net/RWzQT/1/

$(document).ready(function() {
    $(".qa input[type=checkbox]").click(function() {
        $(this).parent().parent('div').toggleClass('show_answer');
    });
});​

请注意,我还onclick="hlt_showhide(this)"从 HTML 中删除了您的内联 javascript ( )。

于 2012-07-13T02:34:29.267 回答
0

如果您不需要 jQuery,请不要使用它。jQuery 是建立在 JavaScript 之上的。所以如果你已经在纯 JS 中编写了代码,为什么还要在 jQuery 中使用它?

jQuery 等价物在逐行流程方面非常相似,只是它将使用 jQuery.parent()来选择父元素并使用.addClass()&.removeClass()来执行这些操作。

于 2012-07-13T01:59:56.113 回答
0
function hlt_showhide(checkbox) {
   $checkbox = $(checked); // just to cache it really!      
   var qaDiv = $checkbox.parent().parent();  
   if ($checkbox.attr('checked'))  {
       qaDiv.addClass("show_answer");
   } else {
      qaDiv.removeClass("show_answer");
   }
}

但坦率地说,我没有看到在这里使用 jQuery 的意义!JS 做到了。

于 2012-07-13T02:11:29.327 回答