javascript - 是否可以通过上下文引用文档中的元素?

标签 javascript jquery html

访问元素的经典方式是:

<div id="myId"></div>
<script type="text/javascript">
    $(document).ready(function(){
        $('#myId').something();
    });
</script>

更不用说很多时候没有明确的 id 用于访问元素,我们最终使用类属性的值,但我们永远无法确定是否有不止一个这样的元素页面。

在将这段或类似的代码写了数千遍之后,我开始怀疑:

有没有办法使用上下文直接引用 HTML 元素?

我在想这样的事情:

<div>
    <script type="text/javascript">
        $(document).ready(function(){
            $.getContext().something(); // accessing the encapsulating div
        });
    </script>
</div>

或者类似的东西?

最佳答案

您可以将可选的第二个上下文参数传递给您的 jQuery(selector, context)其中 context 是:

A DOM Element, Document, or jQuery to use as context

例如,在您的示例中,您可以将 this 传递给您的选择器以引用 document 上下文:

$(document).ready(function(){
    $('#myId', this).something();
});

这个例子是人为设计的,因为 ID 选择器,并且文档是默认上下文。一个更好的例子是这样的:

$('div.foo').click(function() {
    $('span', this).addClass('bar');
});

关于javascript - 是否可以通过上下文引用文档中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47306989/

相关文章:

javascript - 替换斜杠之间的单词,但跳过第一次出现的单词

javascript - 从 javascript 正则表达式对象获取组列表

javascript - 如何删除 JavaScript 初始化?

jQuery .serialize() 表单数据

php - 图片上传失败

javascript - 高中水平西类牙语 1 和 2 翻译错误(使用 labs.codeacademy.com 制作)

javascript - jquery bootstrap Accordion 没有完全垂直扩展

Jquery - 循环遍历具有特定类的每个 div 并根据其宽度应用新类

javascript - 如何在分页媒体中创建旁注?

javascript - 无法在一行中对齐单选按钮及其标签