javascript - jQuery 等效选择器

标签 javascript jquery

以下是否完全等价?你使用哪种习语,为什么?

$('#form1 .edit-field :input')
$('#form1 .edit-field').find(':input')
$('.edit-field :input', '#form1')
$(':input', '#form1 .edit-field')

最佳答案

我会使用#2 或#4:

$('#form1 .edit-field').find(':input')
$(':input', '#form1 .edit-field')

以上两者本质上是一样的。当您指定上下文时,在幕后这就是正在发生的事情:

jQuery( context ).find( selector );

我会避免#1 和#3 的原因是因为它们都比#2/#4 慢得多。


编辑:刚刚做了一个快速测试: 使用您的选择器的 1000 个输入元素:

$('#form1 .edit-field :input')            // 55ms
$('#form1 .edit-field').find(':input')    // 21ms
$('.edit-field :input', '#form1')         // 47ms
$(':input', '#form1 .edit-field')         // 18ms

关于javascript - jQuery 等效选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604097/

相关文章:

javascript - 我如何在动态生成的 html 表中检查我的值是否为 null

javascript - <脚本类型 ="x-text/handlebars"总是变成 'ember-view' 作为 div - 如何使其成为跨度?

javascript - 此示例中的 JavaScript 事件处理有什么问题? (使用click()和hover() jQuery方法)

javascript - 将 ajax 函数转换为 jquery

javascript - 使用 Ajax、jquery、Node.js 和 Express POST 数据

javascript - 在加载图像、裁剪图像并将其绘制到 Canvas 上之后,如何允许用户在 base64 转换之前旋转图像?

javascript - 获取已由浏览器加载的图像的 Javascript 中的唯一标识符

javascript - 图像在 hover+grow 上跳出其绝对位置

javascript - 带有 classList 的 querySelectorAll() 上的 addEventListener

jquery - 为什么中止 jQuery 队列管道时会收到 q[num] 错误?