Tôi có một số mã JavaScript mà định nghĩa một hàm getElementsByAttribute
như sau:Object.prototype trong JavaScript
Object.prototype.getElementsByAttribute = function(attr) {
var children = this.all || this.getElementsByTagName('*'),
ret = [], i, c;
for(i=0; i<children.length; i++) {
c = children[i].getAttribute(attr);
if(typeof c == "string" && c != "")
ret.push(children[i]);
}
return ret;
}
này hoạt động trong tất cả các trình duyệt tôi đã thử nghiệm trong, ngoại trừ Internet Explorer 7 (và có lẽ thấp hơn) - những browers ném "Đối tượng không hỗ trợ thuộc tính hoặc phương thức này".
Điều duy nhất tôi có thể nghĩ rằng nó không giống như là các đối tượng đã được tạo ra khi tôi xác định các chức năng nguyên mẫu ...
Shrot xác định chức năng như là ... tốt, một "bình thường" và chuyển qua phần tử như một đối số, có cách nào để thực hiện công việc này trong IE7 và dưới đây không?
Cảm ơn - điều tốt là tôi không sử dụng công cụ này thường xuyên và đã có những hạn chế! –
Nhưng anh ta không cố gắng thêm vào nguyên mẫu của các phần tử DOM, anh ta thêm vào nguyên mẫu của Object, hoàn toàn khác. –
@torazaburo: Có, nhưng anh ta mong đợi các phần tử DOM kế thừa 'Object.prototype'. Họ không. – SLaks