他
我试图将我的jQuery脚本转换为Prototype兼容的脚本,但我似乎无法让它工作。有人可以帮帮我吗?它的基本功能是允许您单击整个html表行来选中/取消选中复选框。
$('input:checkbox').hide()
$('.clickable tr').click(function() {
var $checkbox = $(this).find(':checkbox').filter(':first');
$checkbox.attr('checked', !$checkbox.attr('checked'));
$(this).toggleClass('selected');
});
答案 0 :(得分:1)
使用jQuery这个词而不是$也读这个:http://docs.jquery.com/Using_jQuery_with_Other_Libraries
答案 1 :(得分:0)
在Prototype中,您使用$$()
选择具有类css选择器的元素。
这会返回Array
Elements
。然后,您可以对返回的值使用.each()
方法:
$$('input:checkbox').each(function(e) { e.hide(); });
对于活动,您使用Element.observe()
方法:
$$('.clickable tr').each(function(e) {
e.observe(function(event) {
var checkbox = $(this).select('[type="checkbox"]:first');
checkbox.checked = !checkbox.checked;
$(this).addClassName('selected');
});
});
(未测试的)
答案 2 :(得分:0)
编辑:如果您希望获得js库的双重兼容性,请考虑使用$.noConflict()
并在任何地方使用jQuery
而不是$
。
如果您希望仅通过单击行来切换复选框值,下面是您在jQuery中执行此操作的方法。这是工作example。
$(function(){
$('tr').click(function(){
var checkbox = $(this).find('input[type="checkbox"]').first();
if(checkbox.attr("checked")){
checkbox.removeAttr("checked");
}
else{
checkbox.attr("checked", "checked");
}
});
});