精华内容
参与话题
问答
  • 在前端里,想要对静态的HTML变得更加的动态,就必须要对HTML的dom进行操作,dom犹如一个树,树的最底层是文档节点,这个节点顺着上来就到了html节点,也就是根节点。这个根节点有两个分支,一个是body,另一个是head...

           在前端里,想要对静态的HTML变得更加的动态,就必须要对HTML的dom进行操作,dom犹如一个树,树的最底层是文档节点,这个节点顺着上来就到了html节点,也就是根节点。这个根节点有两个分支,一个是body,另一个是head。head里面有很多个子节点,必须要有的是title节点,其他常见的有meta、style、link等,而body里面也有无数个节点。就拿body里面的p节点来讲,里面就有文本,这个文本也是一个节点,称为#text节点。这些就是整个dom树的大概。


            在了解了这些节点后,当我们想要获取一个节点的名字或者改变节点里的属性值或文本值的时候怎么办?这里就要提nodeName、nodeValue和nodeType了。nodeName是只读属性,不能写入和修改,它能够获取元素节点的标签名、属性节点的属性名、文本节点的#text和文档节点的#document。而nodeValue能够写入,它能够获取文本节点的内容、属性节点的属性值,在元素节点里它获取的结果是undefined或者null,nodeValue可以被textContent属性替换。而nodeType返回的是节点类型,不能修改的,常见的节点类型有:

            详细代码如下:

    <body>
    	<p id='ha'>a</p>
    </body>
    <script type="text/javascript">
    	var a = document.getElementById('ha')
    	console.log(a.nodeName)
    	console.log(a.firstChild.nodeValue = 'ha')
    	console.log(a.nodeType)
    </script>

            那么我们想对节点进行操作怎么办,这里有几个属性:getAttributeNode、setAttributeNode和removeAttributeNode。这三个方法分别表示为:getAttributeNode:获取一个节点作为对象、setAttributeNode:设置一个节点和removeAttributeNode:删除一个节点。这三个属性在DOM4版本中已经不推荐使用了,在DOM4版本中推荐使用的是getAttribute、setAttribute和removeAttribute。在DOM4里,属性已不在作为一个特殊的节点了。下面的例子是展示的是新的标准的写法:

            首先是getAttribute,它与getAttributeNode不同的是,返回的是属性值而不是一个对象:

    <body> 
    	<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div> 
    </body>
    <script> 
    	var a = document.getElementById("sss").getAttribute("value"); 
    	console.log(a)
    </script>
            而getAttributeNode想要得到与上面相同的结果,需要这样写:
    var a = document.getElementById("sss").getAttributeNode("value"); 
    console.log(a.value)

            然后是setAttribute,它是设置属性和属性值,而setAttributeNode是设置一个节点,setAttributeNode不如setAttribute灵活:

    <body> 
    	<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div> 
    </body>
    <script> 
    	var a = document.getElementById("t")
    	a.firstChild.setAttribute('ha','haha'); 
    	console.log(a.innerHTML)
    </script>
            而setAttributeNode想要实现上面的例子,首先先要创造一个属性名,然后给属性赋值,最后添加到节点上:
    var a = document.createAttribute('ha')
    a.nodeValue = 'haha'
    var b = document.getElementById('t')
    b.firstChild.setAttributeNode(a)
    console.log(b.innerHTML)

            最后是removeAttribute,与removeAttributeNode相同的是都是删除一个属性,但是区别是,前者没有返回值,而后者以attr对象形式返回被删除的属性:

    <body> 
    	<div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div> 
    </body>
    <script> 
    	var a = document.getElementById("t")
    	a.firstChild.setAttribute('ha','haha'); 
    	a.firstChild.removeAttribute('ha')
    	console.log(a.innerHTML)
    </script>
            由于removeAttributeNode的参数是对象,所以用getAttributeNode来获得这个节点对象,所以本身这个方法用的比较费劲:
    var a = document.getElementById("t")
    a.firstChild.setAttribute('ha','haha'); 
    var b = a.firstChild.getAttributeNode('ha')
    a.firstChild.removeAttributeNode(b)
    console.log(a.innerHTML)

            基础铺好了好,就介绍标题里面所提的attributes了。这个attributes返回的是某个节点里所有属性的集合,返回的是一个NamedNodeMap对象,在这个对象里分两部分,两部分的值都相同只是键不同,一部分的键名以0开始依次增加排列,另一部分的键名则是以属性名来命名的,如上面的这个HTML代码,把下面的这段代码放到控制台那里输出就会看到这两部分:

    document.getElementById('sss').attributes

            不过好可惜,attributes属性在DOM4里面被列为不推荐使用,所以这里也没必要深究这个attributes了。这里只列一下attributes的一些常见用法,如下面的两个得到的都是同一个结果:

    <body>
    	<p id="intro">Hello World!</p>
    </body>
    <script type="text/javascript">
    	x=document.getElementById("intro");
    	console.log(x.attributes['id'].nodeName);
    	console.log(x.attributes.getNamedItem("id").nodeName);
    </script>

            最后楼主翻阅MDN的时候,发现nodeName、nodeValue和nodeType都不推荐使用,nodeName被name替换,nodeValue被value替换。不得不感慨DOM4简直想要来个大变脸。

    参考文章:MDN DOM4中不推荐使用的attr对象的某些属性  js中的attributes     


    展开全文
  • 3.attributes例 3.1(getElementsByNameNodeListAttributeIEFF.html)<HTML><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/></HEAD><BODY><DIV ID=...

    3.attributes
    例 3.1(getElementsByNameNodeListAttributeIEFF.html)
    <HTML>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    </HEAD>
    <BODY>
    <DIV ID="RESULT"></DIV>
    <FORM onClick="handleClick(event)">
        <INPUT TYPE="checkbox" VALUE="A" NAME="BOX" id="BOX_A" checked="true">Selection A<BR>
        <INPUT TYPE="checkbox" VALUE="B" NAME="BOX" id="BOX_B">Selection B<BR>
        <INPUT TYPE="checkbox" VALUE="C" NAME="BOX" id="BOX_C">Selection C<BR>
        <INPUT TYPE="checkbox" VALUE="D" NAME="BOX" id="BOX_D">Selection D<BR>
    </FORM>
    <SCRIPT>
        function handleClick(event)
        {
            myString='';
            /* because there is no this method of getElementsByID, ID is unique
             Document.getElementsByName() (Method)

             An accessor method for retrieving objects from within the DOM hierarchy specifically according to their NAME value.
             Property/method value type: NodeList object
             JavaScript syntax: - myDocument.getElementsByName(aName)
             Argument list: aName The name of the element to be retrieved
             */
    /*马克-to-win:event.target是最上层的元素,注意这里点击时,一定得点中方格里,如果点在方格外面,则event.target.id 是空值。*/
               var event = event||window.event;   
               var eSource =event.srcElement||event.target;        
            nodeListBox=document.getElementsByName("BOX");
            /*Element.attributes[] (Collection)
             A reference to a collection of attribute objects for the HTML tag that the Element object represents.
             Property/method value type: Attributes object

    更多请见:https://blog.csdn.net/qq_43650923/article/details/103050580

    展开全文
  • Attributes

    2008-11-19 21:50:00
    Attributes getAttr setAttr attributeExists deleteAttr renameAttr listAttr attributeQuery Time currentUnit currentTime Playback play; play -forward false; play -query -state; play -s
    Attributes

    getAttr

    setAttr

    attributeExists

    deleteAttr

    renameAttr

    listAttr

    attributeQuery

     

    Time

    currentUnit

    currentTime

    Playback

    play;

    play -forward false;

    play -query -state;

    play -state off;//to stop

    playbackOptions

     

    Animation

    keyframe

    isAnimCurve

    listAnimatable

    setInfinity

    keyTangent

    copyKey

    pasteKey

    cutKey

     

    Skeleton

    joint

    joint -position ....

    insertJoint ....

    xform

    removeJoint

    delete

    展开全文
  • springmvc基础知识(19):@SessionAttributes注解的使用

    万次阅读 多人点赞 2018-05-26 15:53:50
    若希望在多个请求之间共用数据,则可以在控制器类上标注一个 @SessionAttributes,配置需要在session中存放的数据范围,Spring MVC将存放在model中对应的数据暂存到 HttpSession 中。 @SessionAttributes只能使用...
    • 若希望在多个请求之间共用数据,则可以在控制器类上标注一个 @SessionAttributes,配置需要在session中存放的数据范围,Spring MVC将存放在model中对应的数据暂存到
      HttpSession 中。
    • @SessionAttributes只能使用在类定义上。
    • @SessionAttributes 除了可以通过属性名指定需要放到会 话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中 例如:

      1. @SessionAttributes(types=User.class)会将model中所有类型为 User的属性添加到会话中。
      2. @SessionAttributes(value={“user1”, “user2”}) 会将model中属性名为user1和user2的属性添加到会话中。
      3. @SessionAttributes(types={User.class, Dept.class}) 会将model中所有类型为 User和Dept的属性添加到会话中。
      4. @SessionAttributes(value={“user1”,“user2”},types={Dept.class})会将model中属性名为user1和user2以及类型为Dept的属性添加到会话中。
    • value和type之间是并集关系


    举个例子说明一下

    处理器

    @SessionAttributes(value={"user"})
    @Controller
    public class UserController {
    
        @RequestMapping("/testSessionAttributes")
        public String testSessionAttributes(Model model){
            User user = new User("jack","123456");
            model.addAttribute("user", user);
            return "success";
        }
    }
    • 处理方法testSessionAttributes在model中存放了属性名为user的数据,
      处理结束后,model里的数据会被放入到request中,页面通过request域可以获取到。
    • 而这里使用了@SessionAttributes(value={“user”})将model中属性名为user的数据copy一份进了session域中.

    在返回的页面success.jsp中

        <br> user requestScope:${requestScope.user}
        <br> 
        <br> user sessionScope:${sessionScope.user}

    处理结束后的返回页面可以在request和session域中获取到属性名为user的数据
    这里写图片描述

    需要强调的是@SessionAttributes的value和type之间是并集关系

    展开全文
  • R:attr()和attributes()的区别

    万次阅读 2017-03-22 13:45:12
    针对attr()和attributes(),现附上一段代码,帮助区别: > x > attributes(x) $names [1] "apple" "orange" > attr(x,"names") [1] "apple" "orange" > attr(x,"names") > attr(x,"type") > x apple ...
  • attributes() 函数

    千次阅读 2019-04-16 10:04:26
    查看更多 https://www.yuque.com/docs/share/a6cc2c96-9824-4903-acb8-284f4ebeb4fb
  • Apache Commons项目简介之Attributes

    千次阅读 2009-04-01 12:17:00
    Apache Commons项目简介之Attributes0.简介Apache Commons项目是专注于开发可重用的Java组件。Apache Commons项目由三部分组成:Commons Proper - 可重用Java组件库。Commons Sandbox - Java组件开发工作空间。...
  • iOS中文本属性Attributes的用法

    千次阅读 2017-01-12 16:59:13
    iOS中用到文本属性Attributes的地方还是很多的,这里对文本属性做一些归纳,以免记不住用到的时候到处找资料:如下是所有的文本属性:NSFontAttributeName //设置字体大小 NSParagraphStyleAttributeName //设置段落...
  • Is there an alternative to update_attributes that does not save the record? 有没有替代update_attributes
  • ASP.NET Attributes属性

    千次阅读 2007-07-28 00:46:00
    可以操作到控件配置代码,比如 在cs中,用 this.bu1.Attributes["Style"]取到值xxxxxTop3 楼wocaobaby(wocaonima)回复于 2006-12-21 21:37:23 得分 0 如果我把他们设置为textbox.attributes["text"]我想设置他text...
  • (1)Driver Attributes与driver_create_file struct driver_attribute { struct attribute attr; ssize_t (*show)(struct device_driver *driver, char *buf); ssize_t (*store)(str...
  • SECURITY_ATTRIBUTES

    千次阅读 2012-05-11 19:41:52
    typedef struct _SECURITY_ATTRIBUTES  {  DWORD nLength;   //结构体大小,可用sizeof取得  LPVOID lpSecurityDescriptor;  //指向一个对象的安全描述符 该安全描述符控制对象的共享 如果为NULL 则...
  • 有时候,我们会看到这样的东西放在类或者方法上面:  [Obsolete("请更新方法")]  刚开始的时候,还自己给它起了个名字——小标签,比如,平常会说:你数据契约是不是没打标签啊!~嘿嘿~ 后来跟代码发现了更多的...
  • 关于FileAttributes

    千次阅读 2016-02-01 22:20:29
    File.GetAttribute(string path);//获取文件属性 File.SetAttribute(string path,FileAttributes ...FileAttributes attributes = File.GetAttributes(path); //是否存在“隐藏”属性 if ((attributes & FileAttribu
  • 最近在研究BLE技术发现了这个东西有一点不明白,有一个GattAttributes的文件 /** * This class includes a small subset of standard GATT attributes for demonstration purposes. */ public class ...
  • win.attributes("-alpha", 0.4) win.title('Hello') win.mainloop() 编译后显示的窗口并没有实现半透明,一点透明效果都没有 在交互式命令窗口中: >>>import tkinter as tk >>>win = tk.Tk() >>>...
  • Using Attributes in C#

    千次阅读 2004-07-21 17:29:00
    原文出处:http://www.codeguru.com/Csharp/Csharp/cs_syntax/attributes/article.php/c5831/ Using Attributes in C#Rating: none Sadaf Alvi (view profile)September 24, 2002 Environment: C# Introduction Att
  • Attributes属Style属性

    千次阅读 2011-09-22 16:47:33
    Attributes属性  因可以任意指定属性,故对于控件来说,有些指定的属性是不合法的,那么这种属性就是无效的。如:假设当前操作的控件为HtmlImage,名为 image1,假设通过Attribute给其指定一个Text属性,属性值为...
  • C#中Attributes的用法

    千次阅读 2011-08-30 11:11:18
    首先参考了下别人的东西:... 只做学习记录,免得遗忘 (一) 在前台用JS写的脚本方法,除了可以直接用在前台控件的属性中,还可以在后台运用。 即在后台页
  • 众所周知,在编写WebCustomControl时,继承于WebControl基类的Attributes以及其Attributes.CssStyle属性是十分常用和重要的。但就是这两个重要的属性,如果开发中使用不当却会带来莫名其妙的效率问题。 由于html的...

空空如也

1 2 3 4 5 ... 20
收藏数 353,301
精华内容 141,320
关键字:

attributes