作者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)
1F:推 LaPass:用prop()去改id看看,我记得有些东西要用prop才能改 03/28 14:44
2F:→ LaPass:$(("#"+lineoldid),temp1) <= 用错了,逗号後面是指定dom物 03/28 14:45
3F:→ LaPass:件,例如... 想去操作其他框架页或是parent、top之类的 03/28 14:46
4F:→ LaPass:我记得是这样写 $("#id img") <= 取得#id底下的img 03/28 14:48
5F:→ robinnpca:因为我用$(.tempdiv "#"+lineoldid)这样子会显示错误 03/28 19:44
6F:→ robinnpca:无法藉由这样去抓後层子代 prop我查一下!先谢谢! 03/28 19:45
7F:推 LaPass:$(".tempdiv #"+lineoldid) 引号要加对地方..... 03/28 20:11