有关Javascript把元素移动指定位置删除的相关问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关Javascript把元素移动指定位置删除的相关问题相关的知识,希望对你有一定的参考价值。

源代码:http://www.blueidea.com/tech/web/2006/3791_4.asp

function mouseUp(ev) 这部分看得不太明白,请高人指点下

function mouseUp(ev)

    //dragObject = null;

    if(dragObject)
        //获取event对象,兼容性写法
        ev           = ev || window.event;
        var mousePos = mouseCoords(ev); //获取当前移动对象的x,y坐标信息
        //获取当前移动对象的标签的droptarget信息
        var dT = dragObject.getAttribute('droptarget');
        if(dT)
            var targObj = document.getElementById(dT);
            //获取垃圾桶图标的的坐标信息
            var objPos  = getPosition(targObj);
            //如果移动对象和垃圾桶图标重叠
            if((mousePos.x > objPos.x) && (mousePos.y > objPos.y) 
&& (mousePos.x<(objPos.x+parseInt(targObj.offsetWidth)))
 && (mousePos.y<(objPos.y+parseInt(targObj.offsetHeight))))
                //获取垃圾桶对象的newSrc的值
                var nSrc = targObj.getAttribute('newSrc');
                if(nSrc)
                    //改变垃圾桶图标为newSrc的值
                    dragObject.src = nSrc;
                    setTimeout(function()
                        //如果dragObject不存在或者父节点不存在直接返回
                        //这段代码基本不执行,因为父节点本事就不存在,可能是想实现什么东西后来删除了吧
                        if(!dragObject || !dragObject.parentNode) return;
                        dragObject.parentNode.removeChild(dragObject);
                        dragObject = null;
                    , parseInt(targObj.getAttribute('timeout')));
                 else 
                    dragObject.parentNode.removeChild(dragObject);
                
            
        
    
    //移动完复制为null
    dragObject = null;

    iMouseDown = false;


凑活写了下,不懂接着问。

参考技术A 鼠标按下事件追问

能详细解释下吗

追答

采纳 详细给你解答

在JS数组指定位置插入元素

一、JavaScript splice() 方法
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

方法实例

//在数组指定位置插入
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
//输出结果
//Banana, Orange, Lemon, Kiwi, Apple, Mango

 

//在数组开头插入
var shuiguo = ["Banana", "Orange", "Apple", "Mango"];
shuiguo.splice(0, 0, "Lemon");
//输出结果
//Lemon, Banana, Orange, Apple, Mango
语法
array.splice(index,howmany,item1,.....,itemX)

 

 

参数 Values
参数    描述
index    必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany    必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX    可选。要添加到数组的新元素
返回值
Type    描述
Array    如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

二、JavaScript unshift() 方法
unshift 方法用于向数组的开头添加一个或多个元素,并返回新数组的长度。

语法
array_object.unshift( newelement1, newelement2, ... )
参数 Values
 
参数 说明
array_object 要操作的数组(对象)
newelement1, ... 至少一个。要添加到数组的元素序列,使用 , 分隔。
提示:unshift 方法将直接修改原数组,并将已经存在的元素顺次地移到较高的下标处,而不像其他很多方法一样得到一个原数组的副本。

方法实例
<script language="JavaScript">

var array_1 = new Array(‘a‘,‘b‘,‘c‘);
document.write( array_1.unshift(1,2) + ‘<br />‘ );
document.write( array_1 );

</script>
运行该例子,输出:

5
1,2,a,b,c
注意
在 IE 某些版本下,该方法返回的可能是 undefined 而不是新数组的长度。

三、JavaScript concat() 方法
定义和用法
concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数 描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

实例
例子 1
在本例中,我们将把 concat() 中的参数连接到数组 a 中:

<script type="text/javascript">

var a = [1,2,3];
document.write( a.concat(4,5) );

</script>
输出:

1,2,3,4,5
例子 2
在本例中,我们创建了两个数组,然后使用 concat() 把它们连接起来:

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

document.write(
arr.concat(arr2)
)

</script>
输出:

George,John,Thomas,James,Adrew,Martin
例子 3
在本例中,我们创建了三个数组,然后使用 concat() 把它们连接起来:

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"

document.write(
arr.concat(arr2,arr3)
)

</script>
输出:

George,John,Thomas,James,Adrew,Martin,William,Franklin

 

以上是关于有关Javascript把元素移动指定位置删除的相关问题的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中如何删除数组中指定元素后形成新的数组

Javascript中如何删除数组中指定元素后形成新的数组

在JS数组指定位置插入元素

javascript基础06

jqgrid 怎么把行插入到指定位置

javascript基础06