对于HTML Element对象,存在属性 attributes,包括了对象“所有”属性,通过对其遍历,可以获取我们所需要的信息,以便对DOM节点做进一步的处理,例如将DOM结构保存为XML或者字符串等。
function outputAttributes(element){
var pairs = new Array();
for(var i=0,len = element.attributes.length;i < len;i++){
var name = element.attributes[i].nodeName;
var value = element.attributes[i].nodeValue;
pairs.push(name + '=\'' + value + '\'');
}
return pairs.join(' ');
}
每一个attribute属性有一个附加属性specified,当属性是HTML Element的属性(指写在代码中可见的),或者是通过setAttribute方法进行的添加的时候,它的值为 true。IE6,IE7在执行上述代码的时候,会把很多的内置属性(如:onclick,onmouseover,tabIndex)一起列出来,这些属性的specified默认是为false。因此,修改上传代码如下:
function outputAttributes(element){
var pairs = new Array();
for(var i=0,len = element.attributes.length;i < len;i++){
var name = element.attributes[i].nodeName;
var value = element.attributes[i].nodeValue;
if(element.attributes[i].specified)
pairs.push(name + '=\'' + value + '\'');
}
return pairs.join(' ');
}
例子
<div id='test' class="cls" dir="ltr" title="wott" SS='WWW' ss="ss"></div>
function fun(){
var e = document.getElementById('test');
e.setAttribute('title2', 'titlte2');
alert(outputAttributes(e));
}
未使用specified过滤:
使用specified过滤:
- 大小: 7.1 KB
- 大小: 4.2 KB
分享到:
相关推荐
JavaScript Element Traversal规范是DOM(文档对象模型)的一个扩展,旨在提供更方便的方式来遍历和访问HTML或XML文档中的元素。这个规范引入了一系列新的属性,使得开发者能够更加高效且一致地处理元素之间的关系,...
首先,`for...in`循环是JavaScript中遍历对象属性的一种基本方式。在给出的示例中,我们创建了一个名为`myObject`的对象,并给它分配了三个属性:`sitename`, `siteurl`, 和 `sitecontent`。然后使用`for...in`循环...
通常,我们会在JavaScript中通过`element.style`对象来更改元素的样式。例如,改变一个元素的颜色: ```javascript var element = document.getElementById('myElement'); element.style.color = 'red'; ``` 在...
以下是对JQuery中一些关键的属性、遍历和HTML操作方法的详细解析: 1. **属性操作**: - `attr(name)`:获取指定属性`name`的值,如`$("element").attr("id")`。 - `attr(name, value)`:设置指定元素的属性`name...
假设我们有两个JSON对象,`obj1`和`obj2`,它们各自包含一个数组属性,如`arr1`和`arr2`: ```json { "obj1": { "arr1": ["元素1", "元素2", "元素3", "元素4"] }, "obj2": { "arr2": ["元素2", "元素4", ...
在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性,从而获取键值和对应的值。以下是一个简单的函数`getObjectKeys`,用于获取对象的所有键: ```javascript function getObjectKeys(object) {...
然后,可以使用`childNodes`、`firstChild`、`lastChild`、`nextSibling`和`previousSibling`等属性遍历子节点。例如,遍历所有订单项: ```javascript var orderItems = rootElement.getElementsByTagName('item'...
表单元素如`<input>`, `<select>`, 和`<textarea>`可以通过`document.forms`访问,然后通过它们的`elements`属性遍历: ```javascript let form = document.forms[0]; for (let i = 0; i ; i++) { let element = ...
若要同时访问键和值,可以使用`varStatus`属性创建一个迭代状态对象。例如: ```jsp ${map}" var="entry" varStatus="status"> Key: ${entry.key}, Value: ${entry.value} <!-- 或者 --> Key: ${status.index},...
一个XML文档由元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)和处理指令(Processing Instruction)等节点组成。DOM将这些结构转换为对象,使我们可以通过编程方式操作它们。 在JavaScript中...
ECS(Element Construction Set)是Java开发中的一种中间件,其主要目的是为了简化HTML的创建和操作过程,通过面向对象的方式让开发者能够更加便捷地处理HTML元素。在Java Web开发中,ECS作为一种强大的工具,使得...
- 树遍历:Element对象的getchildren()返回子元素列表,iter()方法用于迭代遍历所有子元素,find()和findall()方法根据XPath或CSS选择器查找子元素。 3. XPath和CSS选择器:XPath是强大的定位XML元素的语言,lxml...
这个`Document`对象代表了整个HTML结构,我们可以从中获取元素、属性和其他信息。 **HTML元素的提取** JSoup提供了丰富的API来选择和操作HTML元素。例如,我们可以使用CSS选择器来选取特定的元素。假设我们想要...
2. **查询元素**:使用`find()`函数,传入CSS选择器,返回一个Element对象的集合。 ```php $elements = $html->find('div.container'); ``` 3. **遍历元素**:遍历找到的元素集合,访问每个元素。 ```php foreach...
在“javaScript生成DOM 对象ProvinceCity3.html”中,可能展示了如何动态生成省份和城市选择的下拉列表,这涉及到遍历数据和动态创建`<option>`元素的过程。 最后,图片处理也是DOM操作的一部分。在“images”目录...
`$.each()`方法接受两个参数:第一个是要遍历的对象,第二个是一个回调函数,该回调函数会针对对象中的每个属性执行一次。在回调函数中,`this`关键字指向当前的属性值,`index`则是当前属性的索引。 在遍历数组时...
Node对象还有一系列用于遍历和操作文档结构的属性,如: - `element.attributes`:返回一个NamedNodeMap,包含元素的所有属性。 - `element.childNodes`:返回一个Node数组,包含当前节点的所有子节点。 - `element...
对于对象,`each`函数则遍历对象的所有属性。例如: ```javascript var person = { name: "John", age: 30, city: "New York" }; $.each(person, function(i, n) { console.log("Property: " + i + ", Value: " + ...
console.log('对象属性:', key + ' - ' + value); }); ``` ### `each()`与`for`循环的区别 虽然`for`循环也可以实现遍历,但`each()`提供了更简洁的语法和jQuery的上下文优势。`each()`在遍历过程中自动绑定...
- `<element>.getAttribute(name)`: 获取元素的指定属性`name`的值。 - `<element>.setAttribute(name, value)`: 设置元素的指定属性`name`的值为`value`。 - `<element>.insertBefore(newNode, targetNode)`: 在...