如何将.div4附加到其父容器上的.div1 onLy中,而不是它还附加到具有相同div的下一个容器?我尝试了基本的jQuery appendTo,但这会在我的DOM中的所有.div1元素上设置.div4。
<div class="container">
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
</div>
<div class="container">
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
</div>
更新:更改了无效的HTML。现在使用此脚本(将虚拟div替换为我的实际div):
var $this = $('span.conditionHilite.refurbHilite');
$this.appendTo($this.closest('.itembox.centerbox.col.span_1_of_3').find('.image.col1'));
现在的问题是,如果我的页面包含多个带有&#34; span.conditionHilite.refurbHilite&#34;的容器。它会将这些元素的总量附加到每个父容器中,而不仅仅是一个。
答案 0 :(得分:1)
如果您尝试使用jQuery将元素附加到多个目标元素,它将克隆该元素,但需要多次。如果您只想将.div4
附加到同一容器元素中的.div1
元素,则需要显式选择该元素。像这样:
var $this = $('.div4');
$this.appendTo($this.closest('.container').find('.div1'));
使用.closest()
遍历DOM树以查找包含元素,然后.find()
查看包含.div1
元素元素的.div4
。使用当前只有单个元素的DOM结构,只需移动id="container"
元素,而不创建任何克隆。
注意:正如Rory McCrossan指出的那样,您在HTML中重复使用ID,因此无效。我在上面的代码中使用了一个类选择器,假设您将通过从class="container"
切换到'[id="container"]'
来修复无效的HTML。如果 - 如评论中所述 - 您绝对无法更改,那么self.weightUnitString = [weightString substringFromIndex: [weightString length]-2];
NSLog(@"loadInfoToEdit weightString: %@", weightString);
NSLog(@"loadInfoToEdit weightUnit: %@", self.weightUnitString);
选择器应该可以正常工作。