js中的attributes和Attribute的用法和区别。

一:Attribute的几种用法和含义(attributes和Attribute都是用来操作属性的)

getAttribute:获取某一个属性的值;

setAttribute:建立一个属性,并同时给属性捆绑一个值;

createAttribute:仅建立一个属性;

removeAttribute:删除一个属性;

getAttributeNode:获取一个节点作为对象;

setAttributeNode:建立一个节点;

removeAttributeNode:删除一个节点;

1.getAttribute:

<body>
    <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
</body>
<script>
    var d=document.getElementById("sss").getAttribute("value");
    console.log(d)            //aaa;
</script>

get 取得的返回值是属性值。

2.setAtribute:

<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
</body>
<script>
     var d = document.createAttribute("good");
     document.getElementById("sss").setAttributeNode(d);
     alert(document.getElementById("t").innerHTML)   //弹出框<input type="hidden" id="sss" value="aaa" good="">;
                                //多了一个属性为good;但是没有给其设置属性值;所以为空。
</script>
// obox.setAttribute("a","b")  返回值是undifined;表示给标签里面加上一个属性a;属性值
                                   // 为b;若设置的属性已经存在,那么仅限设置/更改值;直接设置 
                                    //给了标签,看不到返回值,但在html页面中可以看到属性已经被添加到了标签中。

3.createAttribute:

<body>
<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
</body>
<script>
     var d = document.createAttribute("good");
     document.getElementById("sss").setAttributeNode(d);
     alert(document.getElementById("t").innerHTML)  //弹出框<input type="hidden" id="sss" value="aaa" good="">;
                                                     //多了一个属性,属性值为空
</script>

4.removeAttribute:

<body>
<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
</body>
<script>
     var d = document.getElementById("sss").getAttributeNode("value")
     document.getElementById("sss").removeAttributeNode(d);
     alert(document.getElementById("t").innerHTML);   //弹出框<input type = "hidden" id = "sss">;
                                                       //在标签中删除属性value
</script>

getAttribute,setAttribute,createAttribute,removeAttribute四兄弟的概念比较容易理解
,使用方法也比较简单,唯一需要注意这几点:
1、createAttribute在使用的时候不需要基于对象的,document.createAttribute()就可以。
2、setAttribute,createAttribute在使用的时候如果是使用的时候不要使用name,type,value等单词.
3、createAttribute在使用的时候如果只定义了名字,没有d.nodeValue = "hello";语句定义值,FF会认为是一个空字符串,IE认为是undefined。

 

getAttributeNode,setAttributeNode,removeAttributeNode三个方法的特点是都直接操作一个node(节点)。

例:

<body>
<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
</body>
<script>
     var d = document.createAttribute("good");
     document.getElementById("sss").setAttributeNode(d);
     alert(document.getElementById("t").innerHTML);   //弹出框<input type="hidden" id="sss" value="aaa" good="">;
</script>

setAttributeNode() 方法用于添加新的属性节点。参数:attributenode;必须填写你要添加的属性节点。

如果元素中已经存在指定名称的属性,那么该属性将被新属性替代。如果新属性替代了已有的属性,则返回被替代的属性,否则返回 NULL。

======================================================================

二:attributes的用法:

  attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]”;attributes 属性返回指定节点属性的集合。你可以使用 length 属性确定属性的数量,然后你可以遍历所有的属性节点提取你想要的信息。 每个属性都是可用属性节点对象。

  节点的方法,前缀一定是节点。

  对象.attributes                //获得所有属性节点,返回一个数组(伪数组)

<body>
    <div id = "t">
    <input type = "text" id = "sss" value = "aaa">
</body>
<script type="text/javascript">
    var a=document.getElementById("sss").attributes;
    console.log(a);    //NamedNodeMap {0: type, 1: id, 2: value, type: type, id: id, value: value, length: 3};      
              //attributes获得所有的属性节点,返回一个数组(伪数组);

// attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]” var d = document.getElementById("sss").attributes["value"]; console.log(typeof d); // object console.log(d); // value="aaa"; document.write(d.name); //显示 value document.write(d.value); //显示 aaa </script>

 

<body>
    <div class="box" a="10" b="20" id="cont"></div>
</body>
<script>
    var obox=document.querySelector(".box");
    console.log(obox.attributes[3])           //id="cont";

    console.log(typeof obox.attributes[3])      //object;

    console.log(obox.attributes[3].nodeName);    //id;显示数组中第四个属性的属性名

    console.log(obox.attributes[3].nodeValue);   //cont;显示数组中第四个属性的属性值

    console.log(obox.attributes[3].nodeType);    //2;  元素节点属性的返回值为2

</script>

 

转载于:https://www.cnblogs.com/zhouqingfeng/p/11406240.html

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过 JavaScript 的 `FormData` 对象和 `querySelectorAll` 方法来获取表单所有的输入元素的名称、值和类型。以下是一个示例代码: ```html <form id="myForm"> <input type="text" name="username" value="John"> <input type="password" name="password" value="1234"> <input type="email" name="email" value="[email protected]"> <input type="submit" value="Submit"> </form> ``` ```javascript // 获取表单元素 const form = document.querySelector('#myForm'); // 创建一个 FormData 对象 const formData = new FormData(form); // 创建一个空对象来存储结果 const formValues = {}; // 遍历 FormData 对象的所有键值对 for (const [name, value] of formData.entries()) { // 获取输入元素的类型 const type = form.querySelector(`[name=${name}]`).type; // 将输入元素的名称、值和类型存储到结果对象 formValues[name] = { value, type }; } console.log(formValues); ``` 这段代码将输出以下结果: ```javascript { "username": { "value": "John", "type": "text" }, "password": { "value": "1234", "type": "password" }, "email": { "value": "[email protected]", "type": "email" } } ``` ### 回答2: 在JavaScript,我们可以通过以下几个步骤来编写一个获取form所有name和value和type的函数: 1. 首先,我们需要获取到form元素。可以使用`document.querySelector()`或`document.getElementById()`等方法来获取到form元素,并将其赋值给一个变量,比如`formElement`。 2. 接下来,我们可以使用`formElement.elements`属性来获取到form所有的表单元素。这个属性返回一个集合,包含了form所有的表单元素。 3. 我们可以使用`for...of`循环来遍历这个集合,对每一个表单元素进行处理。在循环,我们可以访问到每个表单元素的`name`、`value`和`type`属性,并将其打印出来或存储在一个数组。 下面是具体的代码示例: ```javascript function getFormData() { var formElement = document.querySelector('form'); // 获取form元素 var formData = []; // 存储表单数据的数组 for (var element of formElement.elements) { // 遍历form的每个表单元素 var name = element.name; // 获取name属性 var value = element.value; // 获取value属性 var type = element.type; // 获取type属性 formData.push({name: name, value: value, type: type}); // 将name、value和type构成的对象添加到数组 } console.log(formData); // 打印表单数据 } ``` 以上就是一个使用JavaScript获取form所有name和value和type的基本步骤,通过以上代码示例,我们可以获取到form所有的表单元素的名称、值和类型,并存储在一个数组。 ### 回答3: 使用JavaScript编写一个函数来实现获取form所有input元素的name、value和type属性。 ```javascript function getFormAttributes(formId) { var form = document.getElementByID(formId); var inputs = form.getElementsByTagName("input"); var attributes = []; for (var i = 0; i < inputs.length; i++) { var input = inputs[i]; var name = input.getAttribute("name"); var value = input.value; var type = input.type; var attribute = { name: name, value: value, type: type }; attributes.push(attribute); } return attributes; } ``` 这个函数接收一个form的id作为参数,然后通过getElementByID方法获取form元素,再通过getElementsByTagName方法获取所有的input元素。然后循环遍历所有的input元素,使用getAttribute方法获取name属性的值,使用value属性获取value属性的值,使用type属性获取type属性的值。最后将获取到的所有属性值存入一个数组,并返回这个数组。使用这个函数,你可以在调用时将form的id作为参数传入,获取到所有input元素的name、value和type属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值