- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要使现有的 Web 应用程序与 IE7 兼容。
该代码广泛使用了 element.hasAttribute
,而 IE7 对此方法存在问题。
Object doesn't support property or method 'hasattribute'
如果 input
元素定义了 hasAttribute
方法,我会尝试检查代码,如果没有,我会尝试将其添加到所有 input
元素。
//create an input element variable << works fine
var myInput = document.createElement("input");
//see if it has the 'hasAttribute' method << condition works fine
if (('hasAttribute' in myInput)==false)
{
//get all input elements into objInputElements <<works fine
var objInputElements=document.getElementsByTagName("input");
// MORE CODE NEEDED - To implement a hasAttribute function for all
// elements in the array probably using something
// like: !!element[attributeName] which works in IE7. See link and notes below.
}
This article描述了如何定义一个单独的函数来执行此操作。但是,如果未定义,我想将 hasattribute
方法添加到元素中。 (这样我就不需要更改所有当前编写的代码)
重要提示:表单中有超过 1000 个隐藏的输入字段,因此需要以非常有效的方式将“hasattribute”方法添加到元素中。
请告诉我如何实现这一目标。谢谢!
最佳答案
由于 Element.prototype
不支持 IE < 8,因此没有有效的方法来填充 hasAttribute
。低效的方法(如果你想避免匀场)是这样的(在所有输入加载后放置):
<input data-abc="" />
<script>
if (!window.Element || !window.Element.prototype || !window.Element.prototype.hasAttribute) {
(function () {
function hasAttribute (attrName) {
return typeof this[attrName] !== 'undefined'; // You may also be able to check getAttribute() against null, though it is possible this could cause problems for any older browsers (if any) which followed the old DOM3 way of returning the empty string for an empty string (yet did not possess hasAttribute as per our checks above). See https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute
}
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].hasAttribute = hasAttribute;
}
}());
}
var inputs = document.getElementsByTagName('input');
document.write(
'has?' + inputs[0].hasAttribute('abc') // false
);
document.write(
'has?' + inputs[0].hasAttribute('data-abc') // true
);
</script>
关于JavaScript:如果未定义则实现 'element.hasAttribute' [对于 IE7],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325673/
我尝试找出 的数量使用 JavaScript 在 HTML 文件中添加没有“style”属性的元素。 我的解决方案:找出 的编号标记为“imgCount”,然后获取 的数量“style”属性为“
我对编程还很陌生,所以如果这看起来是一个简单的问题,我应该知道答案,所以很抱歉。 我基本上想监听用户在特定div(文章标题)上的点击,并检查该类是否有属性(值= 1)。-我实际上将代码中其他地方的 d
我目前在我的表单上使用 jQuery 验证器,提交表单时,无论选中还是未选中,验证器上的 checked 属性似乎都没有更改。 这是我的 HTML:
有没有一种原生方法(没有 jQuery)来检查 dom 元素是否具有具有所选值的属性。例如: //assume doc has data-mod="do" defined 这将是真的: documen
我正在尝试从给定元素“向上”遍历 DOM 节点,以获取具有“动画”属性的第一个父元素。 var el = evt.target; console.log(el); while (!el.has
我用过 element.hasAttribute('id') 在我的代码中测试元素是否具有属性 id。但是 hasAttribute API 仅与 IE8 之后的浏览器兼容。是否有类似的 API 或技
我遇到了一些试图使用 hasOwnProperty 访问 html 属性的 jquery 代码。 var e = $element.find('input')[0]; if(!e.
我正在编写一个悬停脚本。基本上,我创建一个 div,将鼠标悬停在特定项目(在本例中为按钮)上时放入聊天框容器中,并在聊天框中显示一些文本。移除鼠标悬停后,文本将会消失。 我还没有完全了解消失部分,但这
我在我的 Nodejs 脚本中使用函数 hasAttribute 来检查它是否存在。 var DOMParser = require('xmldom').DOMParser;
目前我正在为我的网站开发自定义工具提示。这是一个很重的页面,所以它在每一页上都有大约 300 个带有标题的元素。它与这段代码配合得很好: var title=""; $( document ).del
我对使用 C# 的 XML 类还比较陌生。我什至无法让 XML 阅读器识别出我传递给它的字符串是 XML。这是我用来测试基本 Xml 阅读的单元测试 [TestFixture()] public cl
在指令中,我想在对元素执行某些函数之前检查它是否具有属性。但我在 jqLite docs 中没有看到为此做的任何事情. 例如: .directive('noReadonly', function()
我正在制作一个创建倒计时的自定义元素程序。我有 2 个正在使用的自定义属性 - “ed”和“cd-type”。 我已经尝试通过 JavaScript 验证器发送它并修复了一些错误。我还尝试在构造函数中
我正在使用 script from the W3C创建可访问的选项卡面板。当我用脚本加载页面时,出现错误 Uncaught TypeError: Cannot read property 'hasAt
我正在尝试检查按钮是否具有名称属性。以下行给出了正确的结果。 alert(course_view_buttons[30].hasAttribute("name")); 但是下面的代码给出了这样的错误-
我需要使现有的 Web 应用程序与 IE7 兼容。 该代码广泛使用了 element.hasAttribute,而 IE7 对此方法存在问题。 Object doesn't support prope
本文整理了Java中com.google.gwt.uibinder.rebind.XMLElement.hasAttribute()方法的一些代码示例,展示了XMLElement.hasAttribu
我修改了一些在这里找到的爬虫,一切正常,但是我遇到了一些问题。第一个是 fatal error :在 null 上调用成员函数 hasAttribute()。我怎样才能解决这个问题?第一条记录总是生成
我正在从事一个项目,该项目要求我在单独的数据库中构建游戏的房间、元素和 NPC。我选择了 XML,但有些东西阻止我在我的 C# 代码中正确解析 XML。我做错了什么? 我的错误是: System.xm
我一直在想办法如何管理在我的应用程序中实现谷歌地图自动完成后遇到的这个错误。我的maps.ts 文件看起来像; import { Component, NgZone } from "@angular/
我是一名优秀的程序员,十分优秀!