注明:本文参考自:jQuery - 白月黑羽 (byhy.net)
jQuery安装
Download jQuery | jQuery下载到本地
ps: script标签中的src属性:表示包含要执行的代码的外部文件位置
<!DOCTYPE html>
<html lang="en"><head><script src="/jslib/jQuery/jquery-3.7.1.js"></script></head><body><button id='b1'>测试按钮1</button><button id='b2'>测试按钮2</button><script>jQuery('button').on('click', function () { alert('按钮被点击') })</script><body>
</html>
选择元素、事件处理
对比不使用jQuery:
<!DOCTYPE html>
<html lang="en"><head></head><body><button id='b1'>测试按钮1</button><button id='b2'>测试按钮2</button><script>let [b1,b2] = document.querySelectorAll('button')b1.addEventListener('click',()=>{alert('按钮被点击')})b2.addEventListener('click',()=>{alert('按钮被点击')})</script><body>
</html>
jQuery本身是一个构造函数,里面的参数是css选择器;jQuery('button')返回的是一个jQuery对象
,这个对象类似js的数组,里面包含了所有 参数css选择器 选中的DOM对象
jQuery对象的on方法,用来定义事件的处理
jQuery('button').on('click', function () { alert('按钮被点击') })
其中参1为事件名称,参2为回调函数
当然还可以写成
jQuery('button').click(function () { alert('按钮被点击') })
jQuery的简化别名$
$('button').on('click', function () { alert('按钮被点击') })
处理键盘事件:
<head><script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
</head><body><textarea>按ctrl+回车 试试</textarea><script>$('textarea').on('keydown', function (e) { if (e.ctrlKey && e.key==='Enter') alert('按下了ctrl+回车') })</script><body>
元素操作
添加元素
<head><script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
</head><body><div id='content1'><p id='target1'>原来的元素1</p></div><div id='content2'><p id='target2'>原来的元素2</p></div>
</body>
添加子元素示例:
1.添加到#content1 ,作为最后一个子元素
var ele1 = $("<p>新元素1</p>");
ele1.appendTo("#content1");
还可以写成
$("<p>新元素1</p>").appendTo("#content1");
2.添加到#content1 ,作为第一个子元素
$("<p>新元素2</p>").prependTo("#content1");
3.插入到#target2前面,作为哥哥节点
$("<p>新元素3</p>").insertBefore("#target2");
4.插入到#target2后面,作为弟弟节点
$("<p>新元素4</p>").insertAfter("#target2");
注意区别:一个是div里的content;一个是p里的target
还可以:先选中要插入的元素 (jQuery就等价于document.querySelector(''))
$("#content1").append("<p>新元素1</p>");
$("#content1").prepend("<p>新元素2</p>");
$("#target2").before("<p>新元素3</p>");
$("#target2").after("<p>新元素4</p>");
删除元素
先选中,然后调用remove
$("#content1").remove()
替换元素内容
先选中,然后调用html方法,更新元素内部的html
$("#content2").html(`<p id='target3'>新元素222</p>`)
也可调用text方法,直接更新元素内部的文本内容
$("#target2").text(`新元素222`)
jQuery对元素属性的操作
获取元素属性
(jQuery对象的) attr() : 获取元素的属性 ;返回值为字符串形式
<a id="hey" style='color:green;font-size: 2rem;' href="/" class='nav nav-item'attr1='自定义属性'>一个链接
</a><script>
let a = $('a') //先选 ;构造函数创建对象console.log(a.attr('id'))
console.log(a.attr('style'))
console.log(a.attr('href'))
console.log(a.attr('class'))
console.log(a.attr('attr1'))
</script>
设置元素属性
attr() 的第二个参数就是用来设置元素的属性的
<a id="hey" style='color:green' href="/" attr1='自定义属性'>一个链接</a><script>
let a = $('a')a.attr('id', 'new-hey')
a.attr('style' , 'color:blue')
a.attr('href', 'https://www.byhy.net')
a.attr('attr1', '自定义属性2')
</script>
删除元素属性
removeAttr() :用于删除元素的属性
<a id="hey" style='color:green' href="/" attr1='自定义属性'>一个链接</a><script>
let a = $('a')a.removeAttr('id')
a.removeAttr('style')
a.removeAttr('href')
a.removeAttr('attr1')
</script>
style设置
style属性较为特殊:style的属性值本身又是一个键值对
为了方便style里面的设置,只想设置元素style里的某一个样式的属性,可以使用css()
<a id="hey" style='color:green ; font-size: 2rem;' href="/" attr1='自定义属性'>一个链接</a><script>
let a = $('a')a.css('color','red')
</script>
点击某个元素,就设置这个被点击元素的style属性:
<a id="hey" style='color:green;font-size: 2rem;' href="#">一个链接 </a><script>$('a').click(function () {$(this).css('color', 'red');}); </script>
ps:为什么不能写成 $('a').css('color', 'red'); ------- 返回的是符合条件的所有类型的对象,而要的是一批里对应的一个;$(this)代表当前正在点击事件的对象