我有以下代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
var script_obj = document.getElementsByTagName('script')
alert(typeof script_obj);
});
</script>
当我在Firefox(v21)和Chrome(v29)中运行时,我得到object
作为结果,但在Safari(v5)中,我得到function
。
这是为什么?!
在我的其余部分中,我正在迭代script_obj
以获取.src
数据,但我的count
函数确定haystack
的长度(即如果script_obj
不是false
或haystack
,则array
)会返回object
,因此在Safari中失败。有没有其他方法可以做到这一点,而不是使用document.getElementsByTagName('script')
?!
答案 0 :(得分:2)
document.getElementsByTagName()
会返回NodeList。虽然NodeList不是数组,但它确实具有类似于数组的长度属性。因此,您无需执行任何特殊操作来计算其中的项目数。不知道你的计数功能在做什么,但你可以这样做:
> var script_obj = document.getElementsByTagName('script');
> alert(script_obj.length); // will alert '22' or whatever