2011-12-16 57 views
0

在AdvancED DOM脚本中的代码片段中:Javascript删除方法?

delete(classes[i]);的调用是这个数组还是对象方法?我无法Google回答。

/** 
* remove a class from an element 
*/ 
function removeClassName(element, className) { 
    if(!(element = $(element))) return false; 
    var classes = getClassNames(element); 
    var length = classes.length 
    //loop through the array in reverse, deleting matching items 
    // You loop in reverse as you're deleting items from 
    // the array which will shorten it. 
    for (var i = length-1; i >= 0; i--) { 
     if (classes[i] === className) { delete(classes[i]); } 
    } 
    element.className = classes.join(' '); 
    return (length == classes.length ? false : true); 
}; 
window['ADS']['removeClassName'] = removeClassName; 
+0

我发现这个这么做链接相关:http://www.openjs.com/articles/delete.php – Sid 2011-12-16 19:06:14

回答

2

Mozilla的参考文档说关于delete运算符以下几点:

delete运算符删除对象,对象的属性或数组中指定索引处的元素。

欲了解更多信息,请参见下面的文章:

http://perfectionkills.com/understanding-delete/

+0

这甚至意味着什么? – jondavidjohn 2011-12-16 19:10:49

1

delete将指定的成员(可变/阵列/对象)的值设置为undefined

阵列/对象实例...

因为classes[i]实际上引用i索引的阵列。这将是特定索引位置设置为undefined,保留在阵列中的位置...

0

我认为你可以使用简单的$('p').removeClass('myClass yourClass')与jQuery和放在一起的功能,对任何元素