我有一個jQuery像這樣:。每個()方法只適用於第一元件在IE
$('#corner .photo img').each(function() {
var $img = $(this);
var h = $img.height();
var w = $img.width();
$img.css('margin-top', +h/-2 + "px").css('margin-left',+ w/ -2 + "px");
});
它可以在所有的瀏覽器除了在IE 7和8在這些瀏覽器,它僅應用於新屬性到#corner的第一個元素(這是第一個.photo圖片)。
如果我刪除#corner,它適用於其中的所有「.photo img」實例。但是,我無法刪除id #corner,因爲HTML的其他部分使用「.photo img」,我不希望將此jQuery腳本應用於所有。我只希望它被應用在#corner裏面。
有沒有辦法解決這個問題?
編輯:
我的壞,顯然有與多個同名的div在文件中,這是導致IE的問題。我將它們改爲課程,現在可以使用。
你可以包含你的HTML。這可能是問題所在。 – JohnFx
也許你的HTML不正確,IE比其他瀏覽器更正它,結果是'#corner'內只有一個圖像。很難說這個代碼有什麼問題。 jQuery肯定也適用於IE。也許你可以創建一個http://jsfiddle.net/演示。 –
嘗試'alert($('#corner .photo img')。length)'告訴我們IE中的輸出是什麼? – Rifat