Javascript 是否有一种快捷方式来引用我的DIV中的元素?

Javascript 是否有一种快捷方式来引用我的DIV中的元素?,javascript,jquery,Javascript,Jquery,我有以下资料: <div class="modal hide fade" id="adminDialog" style="display: none;"> <div class="modal-header"> <a data-dismiss="modal" class="close">×</a> <h3 id='dialog-heading'></h3> </div&g

我有以下资料:

<div class="modal hide fade" id="adminDialog" style="display: none;">
    <div class="modal-header">
        <a data-dismiss="modal" class="close">×</a>
         <h3 id='dialog-heading'></h3>
    </div>
</div>
我想更改标题的案文。如果我想这样做,我需要吗
使用
$('#dialog heading').text()
或是否有基于dialogDiv变量的快捷方式?

您可以使用
dialogDiv
$('#adminDialog')
,因为它们引用同一对象。只有当
对话框div
存在于当前作用域中时,它才起作用(也就是说,如果您在函数中分配了它,它只在该函数中可用)

只要您在当前作用域中有权访问
对话框div
,它甚至更倾向于使用
对话框div.find(#对话框标题”).text(“新文本”)
,因为它不必再次遍历整个DOM,因此性能稍高。

如果它必须基于dialogDiv,那么这是我所知道的最好的一个

$("h3", $("#adminDialog")).text('new text');

此选择器告诉您在adminDialog的范围内查找
h3


但是您正在为div使用一个id,因此没有选择器可以位于直接选择之上。像

$('#dialog-heading').text('new text');

这在很大程度上取决于你的需要

由于元素有一个ID,
$(“#对话框标题”)
将是访问它的最快方式


但是,如果您想访问
#adminDialog
中的
,最好使用
adminDialog.find('h3')
,假设您的
div#adminDialog
中只有一个子元素,您还可以使用CSS选择器:

$('div#adminDialog h3').text("bla bla")

虽然按ID查找要比在dialogDiv中查找快,因为ID查找很可能是
O(1)
。但我的意思是,我设置H3标题的最干净方式是什么。我认为如果我可以使用dialogDiv作为基础,它看起来会更干净一些,但我不确定如何做到这一点。如果您需要在很多事情上使用它,您可以将它保存在一个变量中,但是如果您只做一件事,只需直接使用jquery,这样您就不会拥有所有的变量。关于速度:你在这里看到的是次要的、次要的、微观的优化,请不要为此费心。jQuery不会缓存
$(“#adminDialog”)
吗?@kooinc会吗?我一直在读到,为了提高性能,您应该自己缓存对象。缓存是新的还是我错过了什么?有什么好消息吗?你没有漏掉任何东西,我的坏消息,没有缓存任何东西。看。@KooiInc啊,很好,你让我一时糊涂:)h3第一?我以前从未见过这种选择器。我也可以用dialogDiv替换$(“#adminDialog”)吗?那么$(“h3”,dialogDiv).text()可以吗?对我来说,这看起来很干净:-)@MarieJ,是的,在一个范围内进行选择是可以的,而且非常清晰。
$('#dialog-heading').text('new text');
$('div#adminDialog h3').text("bla bla")