为什么页面上的两个元素具有相同的ID?

时间:2017-06-30 12:54:11

标签: javascript asp.net ajax

在网页上,我在标记的某一点看到了这一点:(注意跨度的id)

<div id="UpdatePanel3">     
    <span id="Timer3" style="visibility:hidden;display:none;"></span>
    <select name="DropDownList1" id="DropDownList1" class="form-control" 
        size="2" onchange="navFromList(this.value);">
        <option value="12720">Blawblawblaw</option>
    </select>                                           
</div>

在CDATA部分的底部,我看到了这一点(注意uniqueID):

Sys.Application.add_init(function() {
    $create(Sys.UI._Timer, {"enabled":true,"interval":15000,"uniqueID":"Timer3"}, null, null, $get("Timer3"));
});

他们如何在同一页面上拥有相同的ID?我知道它与AJAX(或至少部分页面刷新)有关,但我还不明白。

有人能解释一下吗?

1 个答案:

答案 0 :(得分:1)

$create调用会创建类型为Sys.UI._Timer的对象,然后将其附加到DOM树中的span。请注意,计时器本身不是DOM对象,只是一个javascript对象。它只是具有与DOM对象id相同的uniqueID字段值,为方便起见我想。

您可以在页面生命周期内创建任意数量的javascript对象,所有这些对象都具有&#34; id&#34;或&#34; ID&#34;或&#34; uniqueID&#34;字段设置为相同的值。它与您的DOM模型没有直接关系,也不与它发生冲突。