我有这个HTML:
<div id = "note">
<div id = "selection"></div>
<div id = "element"></div>
</div>
<div id = "note">
<div id = "selection"></div>
<div id = "element"></div>
</div>
<div id = "note">
<div id = "selection"></div>
<div id = "element"></div>
</div>
和jquery代码:
$("[id=note]").each(function(){
$(this).find("#selection").css("left", left).css("top", top);
});
使用桌面时,一切都按预期工作。 当使用ipad(safari或chrome)时 - 在.each函数的末尾,我得到id =“#select”的所有元素都具有相同的左边和顶部。
我使用wen inspector来调试代码,并在我运行$(this).find(“#selection”)时在控制台中我得到所有三个元素都有id =“#select”
我错过了什么吗? 在ipad上使用“.find()”是否存在已知问题?
答案 0 :(得分:0)
我应该是唯一的。使用class而不是它,
<div class = "note">
<div class = "selection"></div>
<div class = "element"></div>
</div>
<div class = "note">
<div class = "selection"></div>
<div class = "element"></div>
</div>
<div class = "note">
<div class = "selection"></div>
<div class = "element"></div>
</div>
jquery的
$(".note").each(function(){
$(this).find(".selection").css("left", left).css("top", top);
});
修改强> 就像@Barmar建议的那样,你不必遍历每个元素来应用一个共同的风格,你可以直接使用这样的
$(".note .selection").css({left: left, top: top})
答案 1 :(得分:0)
Ids应该是唯一的。对于类似的id,id选择器只找到离子匹配DOM的第一个元素。改用类:
<强> HTML:强>
<div class= "note">
<div class= "selection"></div>
<div class= "element"></div>
</div>
<强> JS:强>
$(".note .selection").css({"left":left,"top":top});
答案 2 :(得分:0)
使用class而不是Id。 Beacuse id在html中是唯一的
$("[class=note]").each(function(){
$(this).find(".selection").css({"left":left , top : top});
});