從this SO answer他說Object.keys()
得到返回true for obj.hasOwnProperty(key)
的那些對象本身定義的屬性(但下面的代碼返回4 keys
,也產生錯誤,是混淆了我。Object.keys()返回屬性
(function() {
"use strict";
var buttons = document.getElementsByClassName('remove');
console.log("No of keys: ", Object.keys(buttons).length);
for (var i in Object.keys(buttons)) {
buttons[i].onclick = function() {
this.parentElement.remove();
console.log(this.id);
};
}
})();
<div>Some entry here
<button id="0" class="remove">Remove</button>
</div>
<div>Another entry here
<button id="1" class="remove">Remove</button>
</div>
如何在JavaScript正確做到這一點?
'但下面的代碼返回4鍵'nope,2在firefox –
我使用鉻。 – Srinivas
Chrome中有4個,Firefox中有2個。由於ID是'0'和'1',因此HTMLCollection在基於索引的密鑰和基於ID的密鑰之間發生衝突。我猜測,因爲索引是Chrome瀏覽器將它們視爲不等於字符串ID的數字,儘管'Object.keys'然後將它們全部轉換爲字符串,所以最終以'['0','1' ,'0','1']'。 – skirtle