juery学习总结(二)——juery操作页面元素

所有的操作都可以分为增、删、改、查四种,juery选择器代表查看的功能,那么剩下的操作就是对页面元素增、删、改。页面元素有3部分构成:标签,属性和内容,juery对元素的操作可以从这3方面入手。

一、juery对标签的操作


  • 新建元素

 1  //js创建元素
 2 var ele_div = document.createElement("<div>")
 3 //元素属性
 4 //ele_div.setAttribute("id","demo");
 5 var ele_attr = document.createAttribute("id")
 6 ele_attr.nodeValue="demo"
 7 ele_div.setAttributeNode(ele_attr);
 8 //元素内容
 9 //ele_div.innerHTML="hello world"
10 var ele_cont =document.createTextNode("hello world");
11 ele_div.appendChild(ele_cont);   
1 //juery创建元素
2 var demo = $("<div/>")                   //HTML字符串是没有属性的元素时,内部使用document.createElement_x创建元素  与$("<div>")相同
3 //var demo = $("<div id = ‘demo‘ />");   //内部使用innerHTML创建元素
4 //元素属性
5 demo.prop("id","demo")                   //等同与attr()
6 //元素内容
7 demo.html("hello world")                 
  • 删除元素

 1 //js删除元素  (removeChild()只能删除其下一级元素)
 2 //找到要刪除的元素
 3 var demo = $("ul li")[2]
 4 //找到其上級元素
 5 document.getElementsByTagName("ul")[0].removeChild(demo)
 6 //demo.parentNode.removeChild(demo)
 7 //body 刪除所有节点 好像只能body使用 并且无法使用选择器选择的body对象执行这个方法
 8 //document.body.removeNode()
 9 //无法删除
10 //document.body.removeChild(demo) 
1 //juery删除元素
2 //删除元素
3 $("ul li:eq(0)").remove()
4 //删除被选元素的子元素
5 $("ul:eq(0)").empty();

二、juery对元素的操作


  • 新增和删除属性

 1 //基本的操作在上面介绍过了
 2 var demo =  $("ul li:eq(0)")[0]
 3
 4 //1、新增自定义属性
 5 demo.setAttribute("tkey","demo");
 6 //删除属性
 7 //demo.removeAttribute("tkey")
 8 //demo.attributes.removeNamedItem("tkey")  //两种方式效果相同
 9 $("ul>li[tkey]").html("hello world")
10
11 //2、操作css类  用getAttribute()和setAttribute()方法 要考虑浏览器兼容问题
12 demo.className="class_1 class_3"
13 //$("ul>li[class=class_1]").next().html("hello world")
14 $("ul>li[class*=class_1]").next().html("hello world")
15 //根据js对字符串操作来重新为className赋值 js中暂时没找到对应的方法
16 //增加一个className
17 demo.className = demo.className+" "+"class_2";
18 //更换className
19 demo.className = demo.className.replace("class_2","class_3")
20 //删除一个className
21 demo.className = demo.className.replace("class_3"," ")
22 document.getElementsByClassName("class_3")[0].innerHTML="class_1"
 1 //juery 操作元素属性
 2 var ab={"id":"li_0","tkey":"demo"}
 3 var demo =  $("ul li:eq(0)")
 4 demo.html("hello world")
 5 //新增属性
 6 demo.attr(ab)
 7 //demo.attr("id","demo");
 8 //删除属性
 9 //demo.removeAttr("id")
10
11 //1、操作css类
12 //新增class
13 demo.attr("class","class_1")
14 demo.addClass("class_2")
15 //删除class
16 demo.removeClass("class_4")
17 demo.removeClass()
18 //判断是否存在className
19 alert(demo.hasClass())  //开始未指定class和移除class时 为false
20 //含有判断的操作
21 demo.toggleClass("class_4") //存在就删除 不存在就增加
22 demo.toggleClass("class_4",false) //true 增加 false 删除 同addClass(name)和removeClass(name) 不同于removeClass()
23 //修改css样式
24 //demo.css("color:red")没有效果
25 //demo.css("color")= "red"
26 demo.css("color","red")
27 //没有找到juery 直接删除样式的例子,都是通过修改className来更换样式

三、juery对元素内容操作



元素内容为开始标签和结束标签之间的部分,里面可以只有文本也可以包含多个页面元素。

  • 新增

 1 //js插入数据
 2 //准备操作对象
 3 var demo =  $("ul li:eq(0)").clone()
 4 demo.html("hello world")
 5 var dom_demo=demo[0]
 6 var dom_ul = $("ul:eq(0)")[0];
 7 //将node添加到childNodes的末尾
 8 dom_ul.appendChild(dom_demo)
 9 //在选择node后插入使用的是同一个对象的话 不会另外复制一份
10 dom_ul.insertBefore(dom_demo,document.getElementsByTagName("li")[1])
11 //没有这个方法
12 //dom_ul.insertAfter(dom_demo,document.getElementsByTagName("li")[1])
1 //juery
2 //使用上面的对象
3 //插入数据
4 $("<li>hello world</li>").appendTo(‘#d_ul‘)      //$(dom_ul)  dom_ul 效果一样  说明appendTo(dom)内的内容会使用$(dom)转换成juery对象 如果$(dom)不是一个juery对象无法执行
5 $(dom_ul).append("<li>hello world</li>");        //效果同上 只不过参数位置不同
6 $("ul>li:eq(3)").after("<li>hello world</li>")   //同insertAfter()  虽然资料上说insertAfter()接受的是juery对象 但是它会自动转换传入的对象
7 $("ul>li:eq(3)").before("<li>hello world</li>")  //同insertBefore() 同上
  • 修改

1 //js 替换子元素
2 var dom_ul = $("ul:eq(0)")[0];                     //等同于 document.getElementByTagName("ul")[0]
3 var demo = $("<li>hello world</li>")[0]
4 dom_ul.replaceChild(demo,$("ul>li :eq(3)")[0])
5 document.replaceChild(demo,$("ul>li :eq(3)")[0])  //会替换掉ul中第4个元素
1 //juery替换子元素
2 var dom_ul = $("ul:eq(0)");                     //等同于 document.getElementByTagName("ul")[0]
3 var demo = $("<li>hello world</li>")
4 //demo.replaceWith(dom_ul.find("li:first-child"))  //写反了
5 //将选择的内容替换成()中的内容  ()中的内容会 $()转换成juery对象 因此可以传入dom 字符串等可以解析成juery对象的参数
6 dom_ul.find("li:first-child").replaceWith(demo); //dom_ul.find("li:first-child") 等同 dom_ul.find("li:first")
7 //dom_ul.replaceAll(demo)   //又反了
8 //将选择的内容替换到括号内的选择器  传入参数类型同上
9 demo.replaceAll(dom_ul)

参考资料:

JS操作元素的属性和方法:http://weirhp.iteye.com/blog/963835

jquery插入方法汇总:http://blog.sina.com.cn/s/blog_700e11ff0101b2y2.html

时间: 2024-08-05 23:14:05

juery学习总结(二)——juery操作页面元素的相关文章

selenium webdriver学习(八)---操作页面元素等待时间

一.代码实现

【selenium学习笔记】webdriver进行页面元素定位

[selenium学习笔记]webdriver进行页面元素定位 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link te

jQuery操作页面元素之包装元素

一:包装结点:指用指定HTML结构包装现有元素,被包装元素成为结构的子结点.就好像python中的装饰器. 1:wrap(): wrap方法用指定HTML结构包装结点,参数可以是HTML字符串.选择器或者jQuery对象.匹配多个结点时,分别包装各个结点. 2:wrapAll(): wrapAll方法将所有选中的结点包装在一个HTML结构中,参数可以是HTML字符串.选择器或者jQuery对象. 1 <!DOCTYPE html> 2 <html> 3 4 <head>

WebDriver操作页面元素之单选按钮

在使用webdriver操作页面元素的时候经常会遇到一些单选按钮的情况,例如:注册时性别选择.单选按钮族中所有按钮共享同一个名称,所以浏览器知道将按钮组合在一起,通过选中其中一个按钮,其他按钮自动变为未选中状态. 示例代码: package com.seleniumdemo.webdriver; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.T

操作页面元素等待时间

WebDriver在操作页面元素等待时间,提供两种等待方式:一个为显示等待,另一个为隐式等待 区别:1)显示等待:明确告诉webDriver按照特定的条件进行等待,条件未达到,,就一直等待.这在等待某个元素需要非常长的时间时非常有效 2) 隐式等待:告诉webDriver一个最大的超时时间,如果等待条件在超时以前就满足,就立刻执行后续操作而无须等待超时达到 package test; import java.util.concurrent.TimeUnit; import org.openqa.

使用JavaScript操作页面元素

在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作.此种方式主要用于解决在某些情况下,页面元素的.click()方法无法生效等问题. #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #使用JavaScript操作页面元素 from selenium import

juery学习总结(一)——juery选择器

juery在工作中经常使用,遇到不会的问题往往百度一下,事后就忘.使用到现在也感觉不到有什么提高,为了每天进步一点点,从今天起抽时间记录下对juery的学习. 学习之前,首先要了解什么是网页元素,网页的本质就是HTML.HTML元素是一个统称,可以认为从一个标签开始到这个标签结束的这部分就是一个网页元素. 1 <div id="div"> //开始标签 属性 2 <p>hello world</p> //元素内容 3 </div> //结

Selenium操作页面元素

转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html 一.输入框(text field or textarea) //找到输入框元素: WebElement element = driver.findElement(By.id("passwd-id")); //将输入框清空: element.clear(); //在输入框中输入内容: element.sendKeys(“test”); //获取输入框的文本内容: element

JavaWeb学习(二)----JSP脚本元素、指令元素、动作元素

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4048033.html 联系方式:[email protected] [正文] 我们在上一篇文章中学习到了Tomcat的使用和工程文件部署,并明白了jsp文件是怎样发布到服务器上并最终显示出来:JavaWeb学习(一)----JSP简介及入门(含Tomcat的使用) 现在来学习一下JSP的基本语法