我遇到了这段代码的问题,它在IE以外的所有浏览器上工作。
HTML
<div class="separator">
<a href="http://www.domain.com/images/s1920/original.jpg">
<img height="250" src="http://www.domain.com/images/s400/photo.jpg" />
</a>
</div>
THE JAVASCRIPT
<script type='text/javascript'>
var ImageSource = document.getElementsByClassName('separator')[0].getElementsByTagName('a')[0].href;
ImageSource = ImageSource.replace(/0\//, '0-d/');
</script>
它按预期工作,但当我在IE上测试时,它返回此错误,
Message: Object doesn't support this property or method
可能是什么问题?
答案 0 :(得分:6)
.getElementsByClassName
。
您可以使用.querySelector()
代替IE8和所有其他现代浏览器。
var ImageSource = document.querySelector('.separator').getElementsByTagName('a')[0].href;
请注意querySelector()
返回单个元素(因此上面的代码中没有[0]
。您只需要给定示例中的一个元素,但如果您需要多个元素,与.getElementsByClassName()
相同,则可以使用.querySelectorAll()
。
另请注意,以上所有内容仅适用于IE8及更高版本。如果您需要支持IE7,那么您将不得不寻找另一种解决方案。可能你最好的选择是jQuery,因为IE7没有内置的本机解决方案。
希望有所帮助。
答案 1 :(得分:2)
如果你使用的是IE8,那么不支持getElementsByClassName