0

我有以下内容:

<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>

我创建了这个变量:

dialogDiv = $('#adminDialog');

我想更改标题的文本。如果我想这样做,我需要使用$('#dialog-heading').text() 还是有基于 dialogDiv 变量的快捷方式?

4

5 回答 5

1

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

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

或者

$("h3", dialogDiv).text('new text');

这个选择器告诉你h3#adminDialog.


但是您正在为 div 使用 id,因此没有选择器可以超过直接选择。像

$('#dialog-heading').text('new text');
于 2012-04-16T07:56:42.820 回答
0

您可以使用其中一个,dialogDiv也可以使用$('#adminDialog')它们引用相同的对象。它仅dialogDiv在您当前范围内存在时才有效(意思是,如果您已在函数中分配它,则它仅在该函数中可用)

于 2012-04-16T07:52:40.447 回答
0

只要您可以dialogDiv在当前范围内访问,甚至更喜欢使用dialogDiv.find("#dialog-heading").text("new text")它,因为它不必再次遍历整个 DOM,因此性能略高。

于 2012-04-16T07:54:23.317 回答
0

这在很大程度上取决于您的需求。

由于您的元素有一个 ID,$('#dialog-heading')因此将是访问它的最快方式。

但是,如果您想访问<h3>内部#adminDialog,最好使用adminDialog.find('h3')

于 2012-04-16T07:57:26.280 回答
0

假设您的 中只有一个h3子元素div#adminDialog,您还可以使用 CSS 选择器:

$('div#adminDialog h3').text("bla bla")
于 2012-04-16T08:08:13.480 回答