.append()在IE7中不起作用

时间:2011-08-01 20:49:29

标签: jquery cross-browser internet-explorer-7

此脚本适用于所有浏览器,但IE7 ..

概述:我有一页产品(li.prod)。每个产品都有一个图像(li.prod div.mainpic img)。该图像有一个title属性,我用它来添加一个相同名称的类。然后使用css自动显示所有品牌。

$('li.prod .mainpic').each (function() {
  var jThis = $(this);
  var mainImages = jThis.find('img');

  jThis.prepend('<div class="prod-logo"></div>');

  var targList = jThis.find('div.prod-logo');

  mainImages.each(function() {
    newClass = $(this).attr('title');
    targList.addClass (newClass);
  });
});

任何人都知道一个适用于所有浏览器的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我在IE Tester的IE 7模拟器中运行这个小提琴并且没有任何问题。尝试一下,让我知道它是否适合你。

带有前置的版本:

http://jsfiddle.net/jensbits/aBcVX/

带附加的版本:

http://jsfiddle.net/jensbits/aBcVX/2/

带appendTo的版本:

http://jsfiddle.net/jensbits/aBcVX/3/

版本与之后:

http://jsfiddle.net/jensbits/aBcVX/4/

答案 1 :(得分:0)

问题不在于代码。我只需要声明变量。

var $jThis = null; 
var $mainImages = null; 
var $newClass = null;
var $targList = null; 

$('li.prod .mainpic').each(function () {
var jThis = $(this);
var mainImages = jThis.find('img');

jThis.append('<div class="prod-logo"></div>');

var targList = jThis.find('div.prod-logo');

mainImages.each(function() {
    newClass = $(this).attr('title');
    targList.addClass(newClass);
});
});