在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js代碼中,可以直接用id當(dāng)選擇器?

js代碼中,可以直接用id當(dāng)選擇器?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <ul id="color-list2">
    <li id="addEvent">red</li>
    <li id="on_click">yellow</li>
  </ul>
  <script type="text/javascript">
    (function() {
      on_click.onclick = function() {
        alert("我是click1");
      }
//      color-list2.style.color = 'blue';
      on_click.style.color = 'red';
    })();
  </script>
</body>
</html>

問題:
這段代碼為什么可以正確運(yùn)行?
我認(rèn)為on_click應(yīng)該是未定義的,但沒有報(bào)錯(cuò),所以我猜測js中可以直接用id當(dāng)選擇器,但是如果我的猜測正確,那為什么我注釋的那句會(huì)報(bào)錯(cuò)?
真的搞不懂什么原因?求指教

回答
編輯回答
瘋浪

....................

2017年2月6日 10:51
編輯回答
玄鳥

color-list 這個(gè)在js語法里當(dāng)變量成立嗎? 如果 你換成color_list, 你在試試報(bào)錯(cuò) ?

2017年2月9日 11:35
編輯回答
愿如初

ID 直接取得 DOM 元素,這個(gè)問題 SO 上已經(jīng)有了,題主要的文檔:

http://2ality.com/2012/08/ids...

The HTML5 standard specifies that the window object must have a
property key whose value is elem if...

  • there is exactly one DOM element elem whose property id has the value key.
  • there is exactly one DOM element elem whose property name has the value key. elem’s tag must be one of: a, applet, area, embed, form, frame, frameset, iframe, img, object.

當(dāng)然,這種語法是不推薦使用的,SO 鏈接

2、color-list 這個(gè)語法明顯錯(cuò)誤,樓上人都說了,js 里不能這樣用的,color_list可以;

2018年2月20日 00:02
編輯回答
赱丅呿

id命名后應(yīng)該不可以直接通過id名拿出dom的,你這個(gè)不報(bào)錯(cuò)應(yīng)該是on_click是關(guān)鍵字的原因

2017年11月10日 08:45
編輯回答
淚染裳

贊同樓上的,你注釋的那句不對,你應(yīng)該是想寫color-list2的吧

2017年3月25日 02:20
編輯回答
雨蝶

這個(gè)一開始是 IE 為了方便提供的支持,后來火狐、Chrome 都跟進(jìn)了。

而且不止 id,name 也可以,只要不和 js 內(nèi)置屬性或全局變量重名就會(huì)自動(dòng)掛載。

Chrome v64.0.3282.140 下的話在 window / document / all 路徑下:

clipboard.png

但是這個(gè)進(jìn)沒進(jìn)標(biāo)準(zhǔn)還不知道,最好別用不然以后標(biāo)準(zhǔn)不讓用瀏覽器一更新你的代碼就 gg 了。

2018年5月16日 00:15