0

我在这里完成插入元素任务时遇到了麻烦,我已经为此花费了数小时。

当用户单击按钮时,我尝试按类名插入元素。我在脚本中也有 css 设置。我的问题是只有第一个元素具有 css 属性,而其余元素没有。任何人都可以帮助我吗?非常感谢!

jQuery

  //when users clicks the button

   var imgForClass = $("<img src='images/anim.gif' class='imgAbs'>");

   var cssProp = {'position':'absolute',
                       'z-index':99,
                       'top': topPos,  //topPos is the position that the element I want to attach to.
                       'left': leftPos //leftPos is the position that the element I want to attach to.
            }

   //detect if the element has id of 'cons'
   if($element.is('#cons'){                
               imgForClass.insertBefore('.conElement');
               imgForClass.css(cssProp) 
    }

html

<div>
<img src='a.jpg'/>
<img id='cons' src='b.jpg'/>
</div>      

//the new element will be inserted here but only the first element has css property(z-index...etc)
<div class='conElement'>
<img src='b.jpg'/>
</div>      

//the new element will be inserted here but has no css property(z-index...etc)
<div class='conElement'>
<img src='b.jpg'/>
</div>      

//the new element will be inserted here but has no css property(z-index...etc)
<div class='conElement'>
<img src='b.jpg'/>
</div>      

//the new element will be inserted here but has no css property(z-index...etc)
<div class='conElement'>
<img src='b.jpg'/>
</div>   


...more <div>         
4

2 回答 2

1

我认为这里的问题是您期望在 insertBefore() 方法调用之后的 imgForClass 变量现在成为对所有新插入的 img 标签的引用,并且我相信它只是对第一个标签的引用。所以也许像下面这样的东西会帮助你

if($element.is('#cons'){                
               imgForClass.insertBefore('.conElement');
               $('.imgAbs').css(cssProp);
} 

附带说明一下,在一个页面上拥有多个具有相同 ID 的元素,就像您对所有

<img id='cons' src='b.jpg'/>
于 2012-09-14T02:30:57.987 回答
0

我认为这会做到:

if($element.is('#cons'){                
    imgForClass.insertBefore('.conElement').css(cssProp);
}
于 2012-09-14T02:41:15.820 回答