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

时间:2017-11-15 12:06:17

标签: javascript jquery html

访问元素的经典方法是:

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

很多时候没有明确的id来访问一个元素,我们最终使用了class属性的值,但我们永远无法确定是否只有一个这样的元素页面。

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

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

我在考虑这样的事情:

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

或类似的东西?

1 个答案:

答案 0 :(得分:0)

您可以将可选的第二个上下文参数传递到context所在的jQuery(selector, context)

  

用作上下文的DOM元素,文档或jQuery

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

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

这个例子是因为ID选择器而设计的,因为document是默认的上下文。一个更好的例子是:

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