標籤:頁面 bsp .com replace 解決 pen class taf 賦值
詳細描述:
$ele.append、.appendTo、.prepend、.prependTo、.before、.insertBefore、.after、.insertAfter、.replaceAll 這些方法調用之後,如果被添加的那個對象是頁面上原有的對象,當調用這些方法後,原有的那個對象會消失,在新的地方出現(注意:這裡的對象是jQuery對象)
現象:
代碼:
<body> <ul> <li>num:1</li> <li>num:2</li> <li>num:3</li> <li>num:4</li> <li>num:5</li> </ul> <script> var $li = $("<span>~~標籤~~</span>") $li.appendTo($("li")); $("li:gt(2)").append($li); </script> </body>
問題:
為什麼num5後面沒有添加兩個span標籤
原因:
$ele.append、appendTo、prepend、prependTo、before、insertBefore、after、insertAfter、replaceAll
如果被添加的那個對象是頁面上原有的對象,當調用這些方法後,原有的那個對象會消失,在新的地方出現(注意:這裡的對象是jQuery對象)
解決方案:
1.第一行:建立標籤;第二行:將標籤封裝成jQuery對象並添加;第三行:將標籤直接添加到對應的jQuery對象中 var li = "<span>~~標籤~~</span>"; $(li).appendTo($("li")); $("li:gt(2)").append(li); 2.第一行:建立一個jQuery對象;第二行:將對象添加;第三行:給$li重新賦值,值為一個未在頁面上顯示的對象(因此不考慮消失的問題);第四行:將重新賦值的$li進行添加操作 var $li = $("<span>~~標籤~~</span>"); $li.appendTo($("li")); $li = $("<span>~~標籤~~</span>"); $("li:gt(2)").append($li);
append、appendTo、prepend、prependTo、before、insertBefore、after、insertAfter、replaceAll方法被調用後,原本在頁面上顯示的元素會消失