简单的JavaScript查询选择器不起作用?

时间:2013-01-08 22:30:22

标签: javascript html

我写了这个脚本,有一个名为“call”的方法,它充当document.querySelectorAll()的秘书。例如:

var obj = {
    call: function( s ) { return document.querySelectorAll( s ); }
};

obj.call(".test").innerHTML == "Changed";

<p class="test">Original</p>

所以,显然,(我认为)这会将innerHTML值从“原始”更改为“已更改”,但不起作用。

我尝试了其他测试,例如.style.background = "red";,但这些测试都没有用。

我没有在Chrome的错误控制台中看到任何错误,所以我无法弄清楚为什么这不起作用。对于javascript,我是一个完整的菜鸟,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

QSA返回一个NodeList(基本上看起来像一个数组),文档在这里:https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

因此,您需要比较:

var isFoo = obj.call('.test')[0].innerHTML == 'foo';

其他一些观点:

1)调用是JS中的保留字,最好选择其他东西

2)您是在尝试比较结果(您当前正在做什么)还是在尝试设置innerHTML?如果是后者,则代码应为:

obj.call('.test')[0].innerHTML = 'foo';

因为==是比较运算符,而不是赋值。