2013-02-18 55 views
1

我有一组像缩略图:.attr()不适合由JavaScript创建的字元素的工作:使用appendChild

<div id='thumb' class='anImage.jpeg'> 
<img src='anImage.jpg' /> 
</div> 
...... 
<div id='thumb' class='anotherImage.jpeg'> 
<img src='anotherImage.jpg' /> 
</div> 

正如你所看到的,我用“阶级”每个DIV,以便能够在将来通过它包含的图像名称来查找所需的DIV。

我有一个上载器(AJAX imitiated,使用的iframe)。当我上传一张新图片时,我的javascript函数从php文件中得到确认。而如果它是确定我的js代码添加(末尾的appendChild)的新DIV & IMG象下面这样:

<div id='thumb' class='newUploaded.jpeg'> 
<img src='newUploaded.jpg' /> 
</div> 

现在关于这个问题: 我还有一个jQuery的功能,通过点击任何图像上(重命名按钮)发送到被点击的php文件图像名称。但是,在服务器端重命名文件后,我需要使用jQuery更新客户端的图像名称。所以,我这样做:

$.ajax({ 
..... 
success: function(){ 
    $("div.oldname").attr("class", "newname"); 
} 
..... 
}); 

,如果该文件被上传后,刚刚创建它不仅工作。我的代码不适用于刚刚由javascript appendChild()函数创建的元素。

+0

但是,你在哪里调用'appendChild'? – 2013-02-18 02:00:48

+0

我有'用iframe上传文件'代码的另一部分; 在该服务器侧确认后的JS函数(文件上传succesfuly)我需要添加新的上传文件到“设置缩略图”,所以我使用的appendChild() -

Turik 2013-02-18 03:12:28

回答

0

您是否尝试过删除旧的阶级和增加新的类,而不是使用.attr()方法:

$("div.oldname").removeClass('oldname').addClass('newname'); 

此外,有没有你正在使用的文件名作为类的理由?

+0

我只是尝试。这是相同的。适用于所有元素,但不适用于新创建的元素! 我使用DIV类来为其他操作保留img名称。我很容易修改某些IMG的DIV元素,因此我使用imga名称(类)来查找所需的DIV – Turik 2013-02-18 02:10:03

0

找到的..问题是像

<div class="filename"></div> 

文件名:img.jpg具有点:)所以我有不正确的类:

$('div.img.jpg').blabla() // more than 1 dot ;