jquery .find()在ipad上没有按预期工作

时间:2014-06-19 07:24:19

标签: javascript jquery html ipad

我有这个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()”是否存在已知问题?

3 个答案:

答案 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});

});