我们经常需要在JavaScript中给Element动态添加各种属性,这可以通过使用setAttribute()来实现,这就涉及到了浏览器的兼容性问题。
setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。
1、样式问题
setAttribute("class", value)中class是指改变"class"这个属性,所以要带引号。
vName代表对样式赋值。
例如:
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);
输出时:<input type="text" name="q" class="bordercss">,即,input控件具有bordercss样式属性
注意:class属性在W3C DOM中扮演着很重要的角色,但由于浏览器差异性仍然存在。
使用setAttribute("class", vName)语句动态设置Element的class属性在firefox中是行的通的,但在IE中却不行。因为使用IE内核的浏览器不认识"class",要改用"className";
同样,firefox 也不认识"className"。所以常用的方法是二者兼备:
element.setAttribute("class", value); //for firefox
element.setAttribute("className", value); //for IE
2、方法属性等问题
例如:
var bar = document.getElementById("testbt");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");
这里利用setAttribute指定e的onclick属性,简单,很好理解。
但是IE不支持,IE并不是不支持setAttribute这个函数,而是不支持用setAttribute设置某些属性,例如对象属性、集合属性、事件属性,也就是说用setAttribute设置style和onclick这些属性在IE中是行不通的。
为达到兼容各种浏览器的效果,可以用点符号法来设置Element的对象属性、集合属性和事件属性。
document.getElementById("testbt").className = "bordercss";
document.getElementById("testbt").style.cssText = "color: #00f;";
document.getElementById("testbt").style.color = "#00f";
document.getElementById("testbt").onclick= function () { alert("This is a test!"); }
分享到:
相关推荐
总的来说,`setAttribute()`是JavaScript中处理元素属性的重要工具,但使用时必须考虑到浏览器的兼容性问题。对于CSS类,需要同时处理Firefox和IE的不同需求;对于方法属性,尤其是事件属性,应该优先使用点符号法来...
本文实例分析了javascript中setAttribute兼容性用法。分享给大家供大家参考,具体如下: 1:常规属性建议使用 node.XXXX。 2:自定义属性建议使用node.getAttribute(“XXXX”)。 3:当获取的目标是JS里的关键字时建议...
### setAttribute()函数的基本使用方法 1. **函数定义**:`setAttribute()`函数属于Element对象,它用来将指定元素上名为`name`的属性设置为给定的`value`值。 2. **语法结构**:`element.setAttribute(name, ...
3. 在使用`setAttribute`方法时,可以利用浏览器对于`javascript:`协议的支持来解决兼容性问题,但在代码中应尽量避免使用`javascript:`前缀,因为它可能导致XSS(跨站脚本攻击)的安全风险。 4. 对于复杂的交互...
标题“IE6用setAttribute添加事件无效”涉及到的是一个在JavaScript编程中常见的问题,尤其是在处理旧版Internet Explorer(尤其是IE6)浏览器时。在现代浏览器中,`setAttribute`方法可以方便地为HTML元素添加属性...
通用的方法是使用`getAttribute`和`setAttribute`方法,如`div1.getAttribute("value")`和`div1.setAttribute("value", val)`。 综上所述,解决JavaScript的浏览器兼容性问题通常需要对各个浏览器的特性有深入理解...
3. document.bgColor:这个属性是老版JavaScript中用来改变HTML文档背景颜色的方法,现在更推荐使用CSS来控制。 4. Window.open():这是JavaScript中的一个方法,用于打开一个新的浏览器窗口或标签。 5. ...
### JavaScript 常用操作详解 #### DOM 操作 在 Web 开发中,JavaScript 主要用于操作 DOM...以上是 JavaScript 中一些常用的操作方法,涵盖了 DOM 操作、字符串处理、Window 对象的使用等方面,希望对你有所帮助。
9. **网页无障碍性**:强调在使用JavaScript和DOM时,如何考虑网页的无障碍性,使所有用户,包括残障人士,都能方便地使用。 10. **实例应用**:通过实际案例,演示如何将这些知识应用于网页设计和开发,如创建动态...
- **选择节点**:使用如`getElementById`、`getElementsByClassName`等方法来选取文档中的特定元素。 - **创建节点**:使用`createElement`、`createTextNode`等方法来创建新的元素或文本节点。 - **插入节点**:...
在这个函数中,我们使用 `document.getElementById` 方法获取到矩形元素,然后通过 `setAttribute` 方法设置新的宽度和高度属性值,从而改变矩形的大小。 除了直接更改属性值,还可以利用 CSS3 的 `transition` 或 ...
在JavaScript中,我们可以使用`XMLHttpRequest`对象或者`fetch` API来加载XML文件。例如: ```javascript const xhr = new XMLHttpRequest(); xhr.open('GET', 'example.xml'); xhr.onload = function() { if ...
在JavaScript中,`setAttribute` 和 `removeAttribute` 是两个非常重要的DOM操作方法,它们用于动态地添加或移除HTML元素的属性(attributes)。这两个方法在网页交互、动态更新页面内容以及构建复杂Web应用时扮演着...
在实际应用中,我们可以使用`getElementById`、`getElementsByTagName`、`getElementsByClassName`等方法来定位到特定的HTML元素。一旦找到目标元素,就可以通过`getAttribute`来获取属性值,通过`setAttribute`来...
JavaScript 是一种广泛使用的脚本语言,尤其在网页开发中不可或缺。以下是一些在日常编码过程中非常实用的小技巧。 #### 1. 使用 `document.write("")` 清空页面内容 `document.write("")` 可用于清空整个 HTML ...
- **设置和获取属性值**:使用`setAttribute`、`getAttribute`等方法。 #### 四、案例分析 考虑以下示例代码: ```javascript function getTestXmlValue(){ var xmlDoc = new ActiveXObject("Microsoft.XMLDOM...