我需要從這些字段獲取自定義數據屬性。使用純Javascript和不使用getElementById從自定義數據屬性獲取值
<input type="text" name="FirstName" data-type="string" placeholder="First name" autocomplete="off" >
<input type="text" name="phone" data-type="number" placeholder="Last name" autocomplete="off" >
這是代碼選擇字段,而使用的getElementById:
var elements = this.elements;
this.elements = document.getElementsByTagName('input');
var elements = this.elements;
var group = elements.length;
for (var i = 0; i < group; i++) {
this.controller.validate({
field: elements[i],
value: elements[i].value,
dataType: e.target.getAttribute('data-type'), // <---- ERROR: This is undefined
optional: e.target.getAttribute('data-optional')// <---- ERROR: This is undefined
});
}
使用element.getAttribute('data-type')
在正常工作的Chrome和火狐但上IE不能
The挑戰:
我需要讓這些自定義的值從任何瀏覽器屬性:
- 我不能使用任何第三方庫。
- 我不能使用的getElementById,因爲這些領域是動態的。
什麼想法?
究竟如何在Internet Explorer中失敗? IE永遠支持'setAttribute()'和'getAttribute()'。 – Pointy
我得到這個錯誤'SCRIPT438:對象不支持屬性或方法'getAttribute''這是支持的邊緣,但如果你回退到版本11,10,9或8它不支持 –
這意味着你是什麼認爲是一個DOM元素的引用實際上是別的東西。你必須發佈更多的代碼才能讓任何人提供幫助。 – Pointy