jquery与js区别混淆(一)

本文详细对比了jQuery与原生JavaScript在DOM操作上的不同,包括入口函数、内容获取、属性操作、元素及内容的增删改查。通过具体实例说明了两者在执行时机、获取内容、操作属性和元素等方面的具体差异。

jQuery 入口函数:

$(document).ready(function(){
    // 执行代码
});
或者
$(function(){
    // 执行代码
});

JavaScript 入口函数:

window.onload = function () {
    // 执行代码
}

jQuery 入口函数与 JavaScript 入口函数的区别:

  •  jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。
  •  JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。

JQuery获取内容

  • $().html()  获取选中标签的内容(包括html标签)
  • $().text()  获取选中的标签的文本内容
  • $().val()   获取表单元素的内容(value)

JS获取内容

  • innerHTML  获取选中标签的内容(包括html标签)
  • innerText   获取选中的标签的文本内容
  • nodeValue 只能获取文本节点里的内容
  • 表单元素.value 获取表单元素的内容

JQuery操作属性

  • $().attr('属性名')  获取属性值
  • $().attr('属性名','属性值') 修改属性值
  • 可同时设置多个属性

$("#runoob").attr({

"href" : "http://www.baidu.com",

"title" : "百度"

});

JS中的属性操作

  • element.getAttribute('属性名')  获取属性值
  • element.setAttribute('属性名’,'属性值')  修改属性值
  • element.removeAttribute(‘属性名’)   删除属性

jQuery对元素和内容的操作

  • $(selector).append() - 在被选元素的结尾插入内容(或节点)(插入元素是被选元素的子元素)
  • $(selector).prepend() - 在被选元素的开头插入内容(或节点)
  • $(selector).after() - 在被选元素之后插入内容(或节点)(插入元素与被选元素同级)
  • $(selector).before() - 在被选元素之前插入内容(或节点)
  • $(selector).remove() - 删除被选元素(及其子元素)在使用 remove() 的过滤器删除时,不能删除带有过滤器的子元素。
  • $(selector).empty() - 从被选元素中删除空元素

append/prepend和after/before有什么区别呢?

append
<p>
  <span class="s1">s1</span>
</p>
<script>
$("p").append('<span class="s2">s2</span>');
</script>

结果是这样的:

<p>
  <span class="s1">s1</span>
  <span class="s2">s2</span>
</p>

after

<p>
  <span class="s1">s1</span>
</p>
<script>
$("p").after('<span class="s2">s2</span>');
</script>

结果是这样的:

<p>
  <span class="s1">s1</span>
</p>
<span class="s2">s2</span>

总结:

append/prepend 是在选择元素内部嵌入。

after/before 是在元素外面追加。

在使用 remove() 的过滤器删除时,不能删除带有过滤器的子元素。

<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>

<div id="div1" style="height:100px;width:300px;border:1px solid black;background-color:yellow;">
    这是 div 中的一些文本。
    <p class="part">这是在 div 中的一个段落。</p>
    <p>这是在 div 中的另外一个段落。</p>
</div>

<br>
<button>移除div元素</button>
<p>
在使用 remove() 的过滤器删除时,不能删除带有过滤器的子元素。
</p>

 

$(document).ready(function(){
    $("button").click(function(){
        $("#div1").remove(".part");
    });
});无法删除

如果子元素符合过滤器中条件而父元素不符合的话,是不会删除符合条件的子元素,即过滤器中条件只能作用于同级,不能作用于子元素。

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("p").remove(".italic");
  });删除成功
});
</script>
</head>
<body>

<p>这是一个段落。</p>
<p class="italic"><i>这是另外一个段落。</i></p>
<p class="italic"><i>这是另外一个段落。</i></p>
<button>移除所有  class="italic" 的 p 元素。</button>

</body>
</html>

JS中队元素和内容的操作--基于父元素

  • Felement.appenChild()   在末尾添加子节点,可以是创建的新节点,也可以是已经存在的节点
  • Felement.insertChild(newChild,refChild)   在redChild节点前插入一个新节点
  • Felement.replaceChild(newChild,oldChild)  替换节点
  • Felement.removeChild()  删除节点

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值