上次写了一个轮播的方法: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方法哦)的更多相关文章

  1. JS数组slice()和splice()的区别

    以前还是纯小白的时候,总会搞混JS数组的 slice() 和 splice() 方法.因为这2个方法名字太像了,就差一个字母,语法也有类似之处.    现在久了没用,有时候也会忘记,所以做一个总结来区 ...

  2. Js数组的操作push,pop,shift,unshift等方法详细介绍

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾 ...

  3. js 数组的深度拷贝 的四种实现方法

    首先声明本人资质尚浅,本文只用于个人总结.如有错误,欢迎指正.共同提高. --------------------------------------------------------------- ...

  4. js数组删除(splice和delete)

    最近一直在写js的数组,然后就发现了很奇怪的问题,后来才发现了规律. 删除数据的一行,一般有两种方法,一个是splice,一个是delete: splice:删除了数组后,数组的长度会自动变化.用法: ...

  5. js中slice、splice、substr、split方法

    1.slice 可用于数组与字符串,返回一个新的数组,原数组不改变,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素. 在string中 slice(start,e ...

  6. JS数组at函数(获取最后一个元素的方法)介绍

    本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大. 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做? 相信大部分人能 ...

  7. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...

  8. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  9. [jQ/PHP]再谈使用JS数组储值的运用(提交PHP处理)

    --------------------------------------------------------------------------------------------------- ...

随机推荐

  1. C# into子句

    可使用 into 上下文关键字创建临时标识符,将 group.join 或 select 子句的结果存储至新标识符. 此标识符本身可以是附加查询命令的生成器. 有时称在 group 或 select  ...

  2. DOM 遍历-同胞

    在 DOM 树中水平遍历 有许多有用的方法让我们在 DOM 树进行水平遍历: siblings() next() nextAll() nextUntil() prev() prevAll() prev ...

  3. JavaScript 中对变量和函数声明的“提前(hoist)”

    hoist vt.升起,提起; vi.被举起或抬高; n.起重机,升降机; 升起; <俚>推,托,举; 这篇文章不讲英语,但是对于某些英语单词找不到很好的翻译,一上来就列出“hoist”这 ...

  4. 使用jquery ajaxForm提交表单

    一.首先引用Jquery <script src="~/Scripts/jquery-1.9.1.min.js"></script> <script ...

  5. Java钉钉开发_03_通讯录管理之 人员管理 和 部门管理

    一.本节要点 1.通讯录权限 ISV(应用服务商)默认无管理通讯录的权限,企业应用默认有所有通讯录权限. 2.数据传输格式—JSON 请参见: Java_数据交换_fastJSON_01_用法入门 二 ...

  6. 使用git命令将本地项目上传到Gitlab上

    1.首先需要安装本地需要安装git 2.在gitlab上创建项目, 如下图, 点击右上角加号到项目创建页面, 填写项目名称, 选择项目访问权限, private为授权的组员才能访问. 3.打开项目源代 ...

  7. [转载] http长连接和短连接

    转载自http://blog.csdn.net/shine0181/article/details/7799754/ HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP ...

  8. 《 iPhone X ARKit Face Tracking 》

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文来自于腾讯Bugly公众号(weixinBugly), 作者:jennysluo,未经作者同意,请勿转载,原文地址:http://mp.w ...

  9. Android设置屏幕方向

    设置方法:在AndroidManifest.xml中的Activity里加一个属性android:screenOrientation.例如设置该Activity为横向 <activity and ...

  10. 发现大量的TIME_WAIT解决办法 -- 修改内核参数

    今天早上一上班,有同事就反映公司好几个网站都打不开,登陆数据库 服务器(windows),发现很卡,于是重启了下服务器,进入系统后,没过一会问题依旧,查看了下系统进程,发现mysql占用率达到99%, ...