这个例子设置了 min-height,意味着高度可以大于主 div 而不能小于它。然而,更灵活的方法是遍历一组元素,然后将高度设置为最高元素的高度:
var $columns = $('.column'); var height = 0; $columns.each(($(this).height() > height) { height = $(this).height(); } }); $columns.height(height);如果你希望所有列高度相同:
var $rows = $('.same-height-columns'); $rows.each(function () { $(this).find('.column').height($(this).height()); }); 在新标签页 / 新窗口打开外部链接在一个新的浏览器标签页或窗口中打开外部链接,并确保相同来源的链接在同一个标签页或者窗口中打开:
$('a[href^="http"]').attr('target', '_blank'); $('a[href^="//"]').attr('target', '_blank'); $('a[href^="' + window.location.origin + '"]').attr('target', '_self');注: window.location.origin 在 IE10 中不可用. 这个修复方案 正是关注于该问题。
通过文本查找元素通过使用 jQuery 的 contains() 选择器,你能够查找元素内容中的文本。若文本不存在,该元素将被隐藏:
var search = $('#search').val(); $('div:not(:contains("' + search + '"))').hide(); 在 visibility 属性变化时触发当用户的焦点离开或者重新回到某个标签页时,触发 Javasrcipt:
$(document).on((e.target.visibilityState === "visible") { console.log('Tab is now in view!'); } else if (e.target.visibilityState === "hidden") { console.log('Tab is now hidden!'); } }); Ajax 调用错误处理当一个 Ajax 调用返回 404 或 500 错误时,错误处理程序将被执行。若错误处理未被定义,其它 jQuery 代码可能不再有效。所以定义一个全局的 Ajax 错误处理:
$(document).ajaxError(function (e, xhr, settings, error) { console.log(error); }); 链式插件调用jQuery 允许通过“链式”插件调用的方法,来缓解反复查询 DOM 和创建多个 jQuery 对象的过程。例如,下面的代码代表着你的插件调用:
$('#elem').show(); $('#elem').html('bla'); $('#elem').otherStuff();通过使用链式操作,有了显著的改善:
$('#elem') .show() .html('bla') .otherStuff();另一种方法是在变量(以 $ 为前缀)中,对元素进行缓存:
var $elem = $('#elem'); $elem.hide(); $elem.html('bla'); $elem.otherStuff();无论是链式操作,还是缓存元素,都是 jQuery 中用以简化和优化代码的最佳实践。