为什么这个jQuery不会在IE6中执行

时间:2011-12-19 02:07:37

标签: jquery internet-explorer-6

我有一个正在身体中调用的js文件。 jQuery不会在IE6,IE8和IE7中执行。这是文件内容:

$(document).ready(function(){
$('img[src="/v/vspfiles/templates/cyberfront/images/buttons/btn_addtocart_small.gif"]').replaceWith('<br /><span id="blackbutton" class="mediumbutton" style="display:block;">Add to Cart</span>');
$('input[src="/v/vspfiles/templates/cyberfront/images/buttons/btn_go_gray.gif"]').replaceWith('<input type="submit" class="graybutton smallbutton" name="Go" alt="Go" value="Go" title="Go">');
$('input.previous_page_img').attr({class: 'graybutton mediumbutton', src: '/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_prevpage.png'});
$('input.next_page_img').attr({class: 'graybutton mediumbutton', src: '/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_nextpage.png'});
$('img[src="/v/vspfiles/templates/cyberfront/images/Bullet_MoreInfo.gif"]').replaceWith('<span class="learnmore">Learn More</span>');
$('td[background="/v/vspfiles/templates/cyberfront/images/Divider_Horizontal.gif"]').remove();
$('td.v65-productRow-bottom').remove();
$('select').wrap('<div class="styled-select" />');
});

我应该把它放在头部而不是单独的文件中吗?我应该把文件调到脑袋里。我的标记有问题吗?

---- ---- EDIT

我做了一个小提琴并在IE6,IE7&amp; IE8我已经确认它在这些浏览器中不起作用。小提琴:http://jsfiddle.net/2mJWF/

如果渲染得当,这将是最终结果

<body>
<br><span id="blackbutton" class="mediumbutton" style="display:block;">Add to Cart</span>
<input type="submit" class="graybutton smallbutton" name="Go" alt="Go" value="Go" title="Go">
<input type="image" src="/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_prevpage.png" class="graybutton mediumbutton">
<input type="image" src="/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_nextpage.png"     class="graybutton mediumbutton">
<span class="learnmore">Learn More</span>
<table>
<tbody>
<tr>
</tr>
</tbody>
</table>
<div class="styled-select"><select>
<option>Hello</option>
</select></div>
</body>

判断它是否有效的最简单方法是看看你是否看到一条说Hllo Hello的行,如果你没有看到该行,它是否有效,如果你确实看到了它没有的行。

2 个答案:

答案 0 :(得分:0)

您有class作为不带引号的属性名称的对象文字。鉴于class是JavaScript中的保留(for future use)字,IE可能不喜欢这样。试着把它放在引号中(单或双是好的):

// instead of
{class : "something"}
// try
{"class" : "something"}


...
$('input.previous_page_img').attr({"class": 'graybutton mediumbutton', src: '/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_prevpage.png'});

$('input.next_page_img').attr({"class": 'graybutton mediumbutton', src: '/v/vspfiles/templates/eastcoasttvs/images/buttons/btn_nextpage.png'});
...

http://jsfiddle.net/2mJWF/3/

答案 1 :(得分:0)

在检查了那个小提琴上的JSLint之后,我发现设置class属性是无效的,所以我把它改为.addClass。我更新的小提琴:http://jsfiddle.net/2mJWF/4/