在Sizzle对象上执行DOM方法时出错

时间:2014-04-04 15:56:48

标签: javascript jquery dom sizzle

我为Sizzle尝试(不使用jQuery)进行DOM选择。我将Sizzle选择与本机JS混合以构建一些动画功能。我在Sizzle对象上执行DOM方法时遇到错误。例如:

Sizzle('#masthead-copy').appendChild(foo);

结果:Object has no method 'appendChild'。但是以下工作:

document.getElementById('masthead-copy').appendChild(foo);

同样的方法也是如此:

Sizzle('#masthead-images').getElementsByTagName('foo');

但是以下工作:

document.getElementById('masthead-images').getElementsByTagName('foo');

似乎Sizzle在所有选择中返回一个数组(甚至在ids上),这可以解释这里的问题。有没有一个共同的解决方法呢?

1 个答案:

答案 0 :(得分:3)

如评论所示,Sizzle会在所有选择中返回一个数组,因此选择带有Sizzle的ID需要引用结果数组中的第一个(唯一)项:

Sizzle('#masthead-copy')[0].appendChild(foo);