我有一个页面列出了一堆产品及其价格。
所有价格标签都是这样的:
<span class="price">....</span>
我想检查这些元素中的每一个,看它是否等于$ 0.00(文本),如果是,则将其替换为特定的文本消息,而不是显示零价格。
我如何在Prototype JS中编写它?完全是新的,无法弄清楚。
感谢。
我正在尝试这个,但它不起作用:
if($$('.price') == "$0.00"){ $$('.price').update('some text'); }
答案 0 :(得分:1)
$$()
函数返回一个数组,因此您无法(成功)将其与字符串进行比较。同样,数组没有update()
函数,因此$$('.price').update(...)
永远不会工作。
如果你正在使用Prototype 1.7版,那么你可以这样做:
$$('.price:contains("$0.00")').invoke('update', 'some text');
再次$$
返回一个数组,但我使用:contains("$0.00")
来过滤内容,因为它避免了编写循环。然后Enumerable#invoke()
在每个返回的元素上调用'update'
,这也避免了编写循环。
对于早于1.7的版本,你无法避免至少一个循环,所以这可能是最好的方式:
$$('.price').each(function(span) {
if (span.innerHTML == '$0.00') {
span.update('some text');
}
});