作者robinnpca (rob)
看板Ajax
標題[問題] jquery不能改id但可以移除
時間Wed Mar 28 14:33:55 2012
<div class="tempdiv" style="display:none">
<b>
<line id="lineid_001" fill="none" stroke="#bf5f00" stroke-width="10"
x1="100" y1="100" x2="200" y2="200" ></line>
<line id="123" x1="10" y1="10" x2="20" y2="20"></line>
</b>
</div>
var temp1=$(".tempdiv");
var lineoldid='lineid_001';
var linenewid='lineid_002';
可以如下
$(("#"+lineoldid),temp1).remove()
這樣子馬上會被清除掉 line這一個標籤
但下列卻沒反應
$(("#"+lineoldid),temp1).attr("id",linenewid);
這樣子卻一點反應都沒有
請教這問題是出在哪裡?
怎麼那麼奇怪呢?百思不得其解?
$(子, 父)這方式是可以取得父層下所有層級的後代子代,
還是只有父層的下一層子代?
另外若去抓id 也可以抓到沒有問題
如
alert($(("#"+lineoldid),temp1).attr("id"));沒問題
但卻就是不能改id?
PS:最後我要取的是整個temp1下的所有內容,不是只取一條line出來
(這可用find和filter 取出單一條line 來改id, 那變成還要放回去.tempdiv下
, 因有擺放順序問題不方便)
--
寧願天空是藍色~
也不願心情是藍的!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.17.52.209
※ 編輯: robinnpca 來自: 163.17.52.209 (03/28 14:34)
※ 編輯: robinnpca 來自: 163.17.52.209 (03/28 14:36)
※ 編輯: robinnpca 來自: 163.17.52.209 (03/28 14:41)
推 LaPass:用prop()去改id看看,我記得有些東西要用prop才能改 03/28 14:44
→ LaPass:$(("#"+lineoldid),temp1) <= 用錯了,逗號後面是指定dom物 03/28 14:45
→ LaPass:件,例如... 想去操作其他框架頁或是parent、top之類的 03/28 14:46
→ LaPass:我記得是這樣寫 $("#id img") <= 取得#id底下的img 03/28 14:48
→ robinnpca:因為我用$(.tempdiv "#"+lineoldid)這樣子會顯示錯誤 03/28 19:44
→ robinnpca:無法藉由這樣去抓後層子代 prop我查一下!先謝謝! 03/28 19:45
推 LaPass:$(".tempdiv #"+lineoldid) 引號要加對地方..... 03/28 20:11