js与jQuery实现方式对比汇总
CreateTime--2016年12月16日09:11:23
Author:Marydon
js与jQuery实现方式对比汇总
<div id="ListContainer" style="border:1px solid red;height:100px;width:100px;"></div>
1.控制元素的显示与隐藏
	  javascript方式
/*控制div隐藏*/
document.getElementById("ListContainer").style.display = "none";
/*控制div显示*/
document.getElementById("ListContainer").style.display = "block";
jQuery方式
/*控制div隐藏*/
$("#ListContainer").hide();
/*控制div显示*/
$("#ListContainer").show();
2.控制元素的CSS样式(更为详细介绍见文件js&jquery控制CSS样式)
	  a.改变高度和宽度
javascript方式
//死值
/*高度*/
document.getElementById("ListContainer").style.height = "1000px";
/*宽度*/
document.getElementById("ListContainer").style.width = "1000px";
//动态值
/*高度*/
document.getElementById("ListContainer").style.height = "变量名 + 'px'";
/*宽度*/
document.getElementById("ListContainer").style.width = "变量名 + 'px'";
jQuery方式
/*高度*/
$("#ListContainer").height("1000");
$("#ListContainer").height(变量名);
/*宽度*/
$("#ListContainer").width("1000");
$("#ListContainer").width(变量名);
  b.改变元素内的显示内容
		    javascript方式
document.getElementById("ListContainer").innerHTML = "『<font color=red>" + jsonData.FORGNAME + "</font>』机构相关信息";
jQuery方式
$("#ListContainer").html("『<font color=red>" + jsonData.FORGNAME + "</font>』机构相关信息");
UpdateTime--2016年12月18日14:38:30
3.获取复选框的属性checked的值
	  javascript方式
document.getElementById("aa").checked);//true-false
jQuery方式
/*使用attr()方法*/
$("#aa").attr("checked");//checked-undefined
/*使用prop()方法*/(推荐使用)
$("#aa").prop("checked");//true-false
<input type="checkbox" value="zhangsan" id="aa"/><!-- checked="checked" 或 checked="true" -->
jquery中prop()方法和attr()方法的区别:
	  jquery1.6及以上版本支持prop()方法
	  使用attr获取checked属性时返回"checked"和"undefined",使用prop方法获取属性则统一返回true和false
	  //input标签声明checked属性时-->获取的属性值是"checked或true";
	  //input标签没有声明checked属性时-->获取的属性值是"undefined或false"。
UpdateTime--2017年2月28日09:19:02
4.批量获取复选框的值&迭代数组/集合
	  javascript方式
window.onload = function () {
    //javascript实现
    //获取页面中所有的input标签
    var inputTags = document.getElementsByTagName("input");
    //获取复选框的值
    var checkboxValue = "";
    /**
     * javascript实现集合迭代
     */
    for (var i = 0; i < inputTags.length; i++) {
        if ("checkbox" == inputTags[i].type) {
            checkboxValue = inputTags[i].value;
            console.log(checkboxValue);
        }
    }
}
jQuery方式
//获取页面中所有的复选框
var inputCheckboxTags = $("input[type='checkbox']");
//获取复选框的值
var checkboxValue = "";\
/**
* jquery两种方式实现集合迭代
*/
//使用$().each(function(index,value){});实现
$(inputCheckboxTags).each(function(index,element){
checkboxValue = element.value;
console.log(checkboxValue);
}); //使用for循环取值
for(var i = 0; i < inputCheckboxTags.length; i++) {
checkboxValue = inputCheckboxTags.eq(i).val();
console.log(checkboxValue);
}
UpdateTime--2017年1月14日16:36:38
5.重置下拉列表框(选中的选项)
<select id="test" name="t">
<option value="1">一</option>
<option value="2">二</option>
<option value="3" selected="selected">三</option>
</select>
javascript方式
//方法一(推荐使用)
document.getElementById("test").selectedIndex = 0;//或"0"
//方法二
document.getElementById("test").options[0].selected = true;//或"selected"
jQuery方式
//方法一(推荐使用)
$('#test').prop('selectedIndex', 0);
//方法二
$("#test option:first").prop("selected",true);
//方法三
$("select:first option:first").prop("selected",true);
//重置页面所有的下拉列表框
$('select').prop('selectedIndex', 0);
UpdateTime--2017年1月15日16:41:05
6.动态添加内容
	  javascript方式
//方式一
//1.新建一个div元素节点 js中创建标签使用的是标签名称
var divObj = document.createElement("div");//document.createElement("<div></div>")这样是错误的
//2.准备存放至容器中的内容
var HTML = "";
for (var i = 0; i < 100; i++) {
HTML += (i+1)+"<br/>";
}
//3.将内容放置容器中
divObj.innerHTML = HTML;
//4.写入body标签
window.onload = function () {
document.body.appendChild(divObj);//把div元素节点添加到body元素节点中成为其子节点,但是放在body的现有子节点的最后
}
//方式二(推荐使用)
var HTML = "";
for (var i = 0; i < 100; i++) {
HTML += (i+1)+"<br/>";
}
window.onload = function() {
document.body.innerHTML += HTML;//相当于document.body.innerHTML = document.body.innerHTML + HTML;
}
//方式三(不推荐使用)
window.onload = function() {
for (var i = 0; i < 100; i++) {
document.body.innerHTML += (i+1)+"<br/>";
}
}
jQuery方式
//方式一(推荐使用)
var HTML = "";
for (var i = 0; i < 100; i++) {
HTML += (i+1)+"<br/>";
}
window.onload = function () {
$("body").append(HTML);
}
//方式二
var HTML = "";
for (var i = 0; i < 100; i++) {
HTML += (i+1)+"<br/>";
}
window.onload = function () {
$("body").html($("body").html()+HTML);
}
//方式三(不推荐使用)
window.onload = function () {
for (var i = 0; i < 100; i++) {
$("body").append((i+1)+"<br/>");
}
}
小结:
  javascript的appendChild()方法只能添加“标签”
  注意:
	    a.javascript中没有append()方法;
	    b.appendChild()方法只能给指定元素后面添加一个子标签
    如:
	      //document.body.appendChild("<div>33</div>");
	      //document.body.appendChild("<div></div>");
	    这两种方式都是错误的			
    jquery的append()方法
    用法:	
	      append()给指定元素的最后面添加:既可以是标签又可以是内容
    例子:
//直接拼接内容
$("body").append("33");
//拼接标签+内容
$("body").append("<div>333</div>");
UpdateTime--2017年1月19日16:18:29
    jquery的prepend()方法
    用法:	
	      prepend()给指定元素的最前面后面添加:既可以是标签又可以是内容
UpdateTime--2017年3月1日08:04:15
7.获取节点元素
插入节点元素,见文章:appendChild append insertBefore prepend
<script type="text/javascript">
var divTag = document.createElement("div");
divTag.width = "100px";
divTag.height = "100px";
divTag.style.border = "1px solid red";
divTag.innerText = "测试insertBefore";
window.onload = function() { }
</script>
<body>
<a href="javascript:;" id="test">这是一个空链接</a>
</body>
  a.获取第一个子元素 
		  javascript方式
			    firstChild
举例:
//得到body的第一个子元素
var firstElement = document.body.firstChild;
注意:firstChild不推荐使用,存在兼容性问题,建议使用children[0]
  jQuery方式
			    :first
举例:
//方法一
var firstElement = $("body :first");
//方法二
var firstElement = $("body").children(":first");
alert(firstElement.text());
  b.获取最后一个子元素
		  javascript方式
lastChild
jQuery方式
:last
注意:
1.jQuery的":first"和":last"不仅仅可以获取第一个/最后一个子元素,主要用于获取到指定元素的第一个和最后一个元素。
    2.lastChild不推荐使用,存在兼容性问题,建议使用children[最后一个子元素下标]
	  
  e.通过子元素获取父元素对象
		  javascript方式
			    parentNode
		  举例:
//获取a标签的父节点
document.getElementById("test").parentNode;
jQuery方式
parent()
举例:
$("#test").parent();
  f.通过父元素获取所有的子元素节点
		  javascript方式
childNodes
  jQuery方式
			    children()
注意:childNodes不推荐使用,存在兼容性问题,推荐使用children
UpdateTime--2017年1月21日18:56:02
7.解决单击和双击事件并存时,冲突问题
<input id="userName" type="text" value="任溶溶" />
javascript方式
window.onload = function() {
    var timeFun;
    document.getElementById("userName").onclick = function() {
        //这步不能省略
        clearTimeout(timeFun);
        //单击事件300毫秒以后再执行操作
        timeFun = setTimeout(function() {
            alert('onclick事件');
        }, 300);
    }
    document.getElementById("userName").ondblclick = function() {
        //清除时间延迟
        clearTimeout(timeFun);
        alert('ondblclick事件');
    }
}
jQuery方式
$(function() {
    var timeFun;
    $('#userName').bind({
        'click': function() {
            //这步不能省略
            clearTimeout(timeFun);
            //单击事件300毫秒以后再执行操作
            timeFun = setTimeout(function() {
                alert('onclick事件');
            }, 300);
        },
        'dblclick': function() {
            //清除时间延迟
            clearTimeout(timeFun);
            alert('ondblclick事件');
        }
    });
});
UpdateTime--2017年2月16日13:29:58
8.解决隐藏域的onchange事件无效的问题
<input id="aa" type="hidden" value="" onchange="alert(3);"/>
window.onload=function(){
    //javascript方法实现
    if (document.getElementById("aa").value == "" || document.getElementById("aa").value == null) {
        //隐藏域的onchange方法不会自动触发,只能手动触发
        document.getElementById("aa").value = "测试";
        //手动触发onchange事件
        document.getElementById("aa").onchange();
        //或document.getElementById("aa").change();
    }
    //jquery方法实现
    if ($("#aa").val().length == 0) {
        $("#aa").val("测试").change();
    }
}
UpdateTime--2017年3月2日17:25:06
9.滚动事件
10.去除字符串前后空格
<input type="text" onblur="test(this);"/>
javascript方式
JavaScript中没有trim()方法,需要进行自定义封装
<script type="text/javascript">
String.prototype.trim = function(){
return this.replace(/^\s+(.*?)\s+$/, "$1");
}
function test(obj){
var value1 = $(obj).val();
//使用javascript去除前后空格
var value3 = value1.trim();
alert(value1+","+value3);
}
</script>
jQuery方式
<script type="text/javascript">
String.prototype.trim = function(){
return this.replace(/^\s+(.*?)\s+$/, "$1");
}
function test(obj){
//jquery取值
var value1 = $(obj).val();
//使用jQuery去除前后空格
var value2 = $.trim(value1);
alert(value1+","+value2);
}
</script>
UpdateTime--2017年8月24日17:44:06
11.去除a标签悬浮时的下划线
javascript方式
<a href="www.baidu.com" onmouseover="this.style.textDecoration='none';">去除下划线</a>
jQuery方式
<a href="www.baidu.com" onmouseover="$(this).css('text-decoration','none');">去除下划线</a> 
小结:
11.1 使用javascript操作CSS样式时,遇到样式名称中带有-的,第二个首字母大写即可;
11.2 使用jQuery操作多个CSS样式,见文章-jQuery特性。
js与jQuery实现方式对比汇总的更多相关文章
- Ajax 跨域难题 - 原生 JS 和 jQuery 的实现对比
		
讲解顺序: AJAX 的概念及由来 JS 和 jQuery 中的 ajax 浏览器机制 AJAX 跨域 AJAX 的概念 在讲解 AJAX 的概念之前,我先提一个问题. 这是一个典型的 B/S 模式. ...
 - 原生JS替代jQuery的各种方法汇总
		
前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...
 - js与jquery基础知识对比(一)---2017-05-06
		
用表格做的,想要对比的内容一目了然,红色部分为重点 js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...
 - JS与JQuery的一些对比
		
主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
 - 原生JS与jQuery操作DOM对比
		
一.创建元素节点 1.1 原生JS创建元素节点 document.createElement("p"); 1.2 jQuery创建元素节点 $('<p></p&g ...
 - js实现数组去重(方式大汇总)
		
方法一:循环判断当前元素与其后面所有元素对比是否相等,如果相等删除:(执行速度慢) var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; function remove ...
 - js与jQuery方法对比
		
javascript与jQuery方法对比jquery对象转dom对象 // 方式一(推荐使用) $("input")[0] // 方式二 $("input" ...
 - 原生js  与 jQuery对比
		
1.原生JS与jQuery操作DOM对比 : https://www.cnblogs.com/QianBoy/p/7868379.html 2.比较jQuery与JavaScript的不同功能实 ...
 - 原生js替换jQuery各种方法-中文版
		
原文https://github.com/nefe/You-D... 原生JS与jQuery操作DOM对比 You Don't Need jQuery 前端发展很快,现代浏览器原生 API 已经足够好 ...
 
随机推荐
- Java虚拟机类加载机制--概述
			
一.虚拟机类概加载概述 虚拟机将描述类的Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以直接被虚拟机使用的Java类型 Java语言支持动态加载和动态连接. 二.虚拟机加载类 ...
 - Codeforces Beta Round #9 (Div. 2 Only) C. Hexadecimal's Numbers dfs
			
C. Hexadecimal's Numbers 题目连接: http://www.codeforces.com/contest/9/problem/C Description One beautif ...
 - PAT甲级1045. Favorite Color Stripe
			
PAT甲级1045. Favorite Color Stripe 题意: 伊娃正在试图让自己的颜色条纹从一个给定的.她希望通过剪掉那些不必要的部分,将其余的部分缝合在一起,形成她最喜欢的颜色条纹,以保 ...
 - 如何终止JQUERY的$.AJAX请求
			
最近遇到,如果用户频繁点击ajax请求,有两个问题: 1,如果连续点击了5个ajax请求,前4个其实是无效的,趁早结束节省资源. 2,更严重的问题是:最后一个发送的请求,响应未必是最后一个,有可能造成 ...
 - eclipse的项目和配置文件 .project .cproject .classpath .metadata
			
eclipse CDT建立project后在project name对应的目录下面会生成.project和.cproject两个隐藏文件. eclipse java建立project后在projec ...
 - eclipse安装Run-Jetty-Run插件,修改实时生效
			
http://marketplace.eclipse.org/content/run-jetty-run 1.直接拖拽到eclipse安装(7/8/9版本都安装) 2.以调试的方式启动jetty( ...
 - uva 784 Maze Exploration(简单dfs)
			
这道题看上去非常麻烦,什么迷宫啊.门之类的,事实上挺简单的,就是让把与 * 连通的都置为 # 包含 * , 直接dfs就能够了,只是我wa了好多次...最后居然是多读了一个换行.忘了加getchar( ...
 - lua学习:lua中“类”的实现
			
在之前的面试遇到考用lua实现类的题目.现在就补补这块知识点. 我们都知道Lua中的table是一个对象.拥有状态,拥有self,拥有独立于创建者和创建地的生命周期. 一个类就是一个创建对象的模具.L ...
 - gdb对应vc调试命令
			
gdb vc调试对照表: 实现功能 vc gdb 修改后编译 f7 ma ...
 - thymleaf th:text 和 th:utext 之间的区别
			
1 th:text属性 可对表达式或变量求值,并将结果显示在其被包含的 html 标签体内替换原有html文本 文本连接:用“+”符号,若是变量表达式也可以用“|”符号 e.g. 若home.welc ...