原型:选择包含文本的元素(如jQuery:contains())

时间:2011-11-10 15:26:23

标签: javascript prototypejs

使用Prototype我必须选择并隐藏里面包含单词<li>的所有Foo元素:

<li><label>Lorem Lipsum Foo</label></li>
<li><label>Lorem Lipsum Bar</label></li>

我知道使用jQuery它就像$('li:contains("Foo")').hide()一样简单,但是在Prototype中找不到这样做的方法。

2 个答案:

答案 0 :(得分:8)

var lis = document.getElementsByTagName("li");
[].forEach.call(lis, function (li) {
  if (li.textContent.indexOf("Foo") > -1) {
    li.style.display = "none";
  }
});

说真的,你不需要这个库。只是一点点DOM4&amp; ES5为你做到了。

如果您关心传统平台支持,请使用普通填充程序

SideNote:永远都不要$("li:contains('Foo')")它的速度太慢了。更不用说杀人狂选4了

答案 1 :(得分:2)

:contains在Prototype中有效,您只需要记住$$的输出是一个数组。

$$('li:contains("Foo")').invoke('hide');