<html>
<head>
<title>style改变样式</title>
</head>
<script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>
<style type="text/css">
li{
font-size:12px
color:#000000
background:#f7f7f7
width:104px
height:33px
line-height:38px
float:left
list-style:none
text-align:center
margin-left:2px
}
</style>
<script type="text/JavaScript">
// document.getElementsByTagName("li")获取所有的li标签
$(document).ready(function(){
var len = document.getElementsByTagName("li")
alert(len)
//为每一个li设置事件和效果
for(var i=0i <len.lengthi++){
len [i].onmouseover = function(){
this.style.background="#777777"
}
len [i].onmouseout = function(){
this.style.background="#f7f7f7"
}
}
})
</script>
<body>
<ul>
<li>新闻</li>
<li>视频</li>
<li>小说</li>
</ul>
</body>
</html>
js数组是引用类型的值,我们直接将原数组赋值给新的变量,由于指针指向同一个内存地址,修改数组,原数组也会被修改。
如果不想原数组被修改,可以采用以下方法:
此时,再修改copyList的值,不会影响list的值。
es6的Array.from()和扩展语句也可以复制数组,而不会继续引用原数组。
基础用法链接:
slice
concat
Array.from()
... 扩展语句
List是一个对象数组,数组的表现为[,,,,],数组中的每个元素以“,”隔开。List中仅有一个元素--{"id":"ID00001","name":"一二三四","guig":"100ml","shl":"2","dj":"10","je":"20"}。
但由于实际操作中List可能包含不止一个元素,所以这里并不推荐使用List[0]。
//根据id找到数组中某个元素function findById(id) {
for(var i in List) {
if(List[i].id == id) {
return List[i]
}
}
//return null//这里不return,未在数组中找到时返回undefined
}
/*
* 1、编写函数removeElement,直接编写方法remove()可能会与某些浏览器冲突。
* 而delete是关键字,表示删除某个属性。下面将会用到
*/
function removeElement(id) {
var obj = findById(id)
if(!obj) {
return//未找到元素直接结束方法
}
delete obj.id
delete obj.name
delete obj.shl
}
/*
* 2、编写函数editElement
*/
function editElement(id, name) {
var obj = findById(id)
if(!obj) {
return//未找到元素直接结束方法
}
obj.name = name
}
/*
* 当然还有另外一种方法去修改元素
*/
//将源对象的属性覆盖到目标对象
function extend(target, source) {
for (var p in source) {
if (source.hasOwnProperty(p)) {
target[p] = source[p]
}
}
return target
}
/*
* 2、编写函数editElement
* src = {"id":"ID00001","name":"四五六七","guig":"200ml","shl":"3","dj":"10","je":"20"}
*/
function editElement(src) {
//判断是否是对象
f(typeof obj=="object") {
return
}
var obj = findById(src.id)
if(!obj) {
return//未找到元素直接结束方法
}
extend(obj, src)
}