js----数组处理之splice(有js原始addClass方法哦)
上次写了一个轮播的方法:http://blog.csdn.net/stronglyh/article/details/46833499
由于别人问我的时候,给了我html。于是乎我就看到了页面中引用了jquery,所以就用jquery写了,今天细想了下jquery中有一个addClass方法。不知道传统的js能否够使用搞定呢。
<html>
<style>
.font_class {
color:#FF0000;
font-weight:bold;
}
</style> <script language="javascript">
function addClass(cc) {
var obj = document.getElementById('span_1');
var c_class = obj.className;
if(c_class == "") {
obj.className = cc;
} else {
// var reg = /^(.*?)font_1(.*?)$/i;
// new RegExp("(^|\\s)"+className+"(\\s|$)")
var reg = new RegExp("(^|.*?)" + cc + "(.*?)");
if(c_class.match(reg)) {
return;
} else {
c_class += ' ' + cc;
obj.className = c_class;
}
}
} function removeClass(cc) {
var obj = document.getElementById('span_1');
var c_class = obj.className; if(c_class == "") {
return;
} else {
var has_c = false;
var a = c_class.split(" ");
var l = a.length;
for(var i=0;i<l;i++) {
if(a[i] == cc) {
has_c = true;
break;
}
}
if(has_c) {
a.splice(i,1);
obj.className = a.join(" ");
}
}
}
function hasClass(cc) {
var obj = document.getElementById('span_1');
var c_class = obj.className; var reg = new RegExp("(^|.*?)" + cc + "(.*?)");
if(c_class.match(reg)) {
alert('此class已经存在啦,^_^');
} else {
alert('此class还不存在哦,^_^');
}
}
</script> <span id="span_1" class="kaishi">o(∩_∩)o...哈哈</span><br /> <input type="button" onclick="addClass('font_class');" value="点我添加class">
<input type="button" onclick="removeClass('font_class');" value="点我删除class"> </html>
当中在删除的时候使用了splice方法
对于这种方法,总共同拥有三个比較经常使用的使用方法,具体解说下:
1.删除-用于删除元素,两个參数,第一个參数(要删除第一项的位置),第二个參数(要删除的项数)
2.插入-向数组指定位置插入随意项元素。三个參数。第一个參数(事实上位置),第二个參数(0),第三个參数(插入的项)
3.替换-向数组指定位置插入随意项元素,同一时候删除随意数量的项,三个參数。第一个參数(起始位置),第二个參数(删除的项数),第三个參数(插入随意数量的项)
var lang = ["php","java","javascript"];
//删除
var removed = lang.splice(1,1);
alert(lang); //php,javascript
alert(removed); //java ,返回删除的项
//插入
var insert = lang.splice(0,0,"asp"); //从第0个位置開始插入
alert(insert); //返回空数组
alert(lang); //asp,php,javascript
//替换
var replace = lang.splice(1,1,"c#","ruby"); //删除一项。插入两项
alert(lang); //asp,c#,ruby
alert(replace); //php,返回删除的项
那么如今大家应该知道怎么使用了吧。突然发现还是jquery比較方便啊。
js----数组处理之splice(有js原始addClass方法哦)的更多相关文章
- JS数组slice()和splice()的区别
以前还是纯小白的时候,总会搞混JS数组的 slice() 和 splice() 方法.因为这2个方法名字太像了,就差一个字母,语法也有类似之处. 现在久了没用,有时候也会忘记,所以做一个总结来区 ...
- Js数组的操作push,pop,shift,unshift等方法详细介绍
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾 ...
- js 数组的深度拷贝 的四种实现方法
首先声明本人资质尚浅,本文只用于个人总结.如有错误,欢迎指正.共同提高. --------------------------------------------------------------- ...
- js数组删除(splice和delete)
最近一直在写js的数组,然后就发现了很奇怪的问题,后来才发现了规律. 删除数据的一行,一般有两种方法,一个是splice,一个是delete: splice:删除了数组后,数组的长度会自动变化.用法: ...
- js中slice、splice、substr、split方法
1.slice 可用于数组与字符串,返回一个新的数组,原数组不改变,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素. 在string中 slice(start,e ...
- JS数组at函数(获取最后一个元素的方法)介绍
本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大. 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做? 相信大部分人能 ...
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- [jQ/PHP]再谈使用JS数组储值的运用(提交PHP处理)
--------------------------------------------------------------------------------------------------- ...
随机推荐
- 区分window8中 ie10 window phone8
Internet Explorer 10 并没有对 屏幕的宽度 和 视口(viewport)的宽度 进行区分 @-webkit-viewport { width: device-width; ...
- meta 是什么??
META http-equiv 大全HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容.常用的HTTP-EQUIV类型有: 1.Content- ...
- mac下selenium+python环境搭建
selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.seleni ...
- 微信支付——openid获取不到
1.写微信支付遇到状况,通过wx.login获取code,然后向微信服务器获取openid,获取失败:{"errcode":40029,"errmsg":&qu ...
- 利用C#实现分布式数据库查询
随着传统的数据库.计算机网络和数字通信技术的飞速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注.但由于其开发较为复杂,在一定程度上制约了它的发展.基于此,本 ...
- C++中类的多态与虚函数的使用
C++的三大特性:封装.继承.多态.以前学的时候自己没去总结,记得在一本c++入门的书讲得还是比较清楚.今天上网找了一下多态,找到下面这篇文章写得比较清晰. http://pcedu.pconline ...
- [转载] zookeeper 分布式锁服务
转载自http://www.cnblogs.com/shanyou/archive/2012/09/22/2697818.html 分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那 ...
- .NET之RabbitMQ学习笔记(一)-应用场景
使用场景 1.异步处理 用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行处理方式:注册信息写数据库-发送注册邮件-发送注册短信,等上述三个操作都执行完成 ...
- 【Java疑难杂症】有return的情况下try catch finally的执行顺序
有这样一个问题,异常处理大家应该都不陌生,类似如下代码: public class Test { public static void main(String[] args) { int d1 = 0 ...
- JVM菜鸟进阶高手之路十四:分析篇
转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...