DataTransferItemList.remove()

admin發表於2019-10-11

此方法可以刪除集合中指定索引位置的項,索引從0開始計算。

DataTransferItemList總體介紹可以參閱DataTransferItemList 集合一章節。

特別說明:此方法只能用在dragstart事件處理函式中。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
DataTransferItemList.remove(index)

引數解析:

(1).index:要刪除資料項的在集合中的索引位置。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
p{
  width:100px;
  height:50px;
  background-color:red;
}
#box {
  width:300px; 
  height:100px;
  background-color:#ccc;
}
</style>
<script>
window.onload = (ev) => {
  let odiv=document.getElementById("box");
  let op=document.getElementById("p");
    
  op.ondragstart = (ev) => {
    ev.dataTransfer.setData("text/plain",ev.target.id);
    ev.dataTransfer.setData("text/uri-list","http://www.softwhy.com");

    // 測試效果
    let itemList = ev.dataTransfer.items;
    itemList.remove(1);
    itemList[0].getAsString(function(str){
      console.log(str);
    })
  }
   
  odiv.ondragover = (ev) => {
    ev.preventDefault();
  }
    
  odiv.ondrop = (ev) => {
    ev.preventDefault();
    ev.stopPropagation();
  }
}
</script>
</head>
<body>
<p draggable="true" id="p"></p>
<div id="box"></div>
</body>
</html>

上述程式碼刪除了集合中索引為1的專案,谷歌控制檯執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201910/11/171315c6068ss11669eby8.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

程式碼分析如下:

(1).let itemList = ev.dataTransfer.items獲取DataTransferItemList型別集合。

(2).DataTransferItemList集合中的每一項表示傳遞的一個資料。

(3).itemList.remove(1)刪除集合中索引為1的項,也就是"text/uri-list"型別的資料。

(4).然後通過getAsString()方法列印出剩餘傳遞的值。