JS Prototype按类获取元素?

FLX*_*FLX 10 javascript prototypejs

我得到了以下代码,我试图让它匹配一个类而不是一个id:

HTML:

<div id='testdiv'>
    <div class="lol">
        [First Title|<a class="external" href="http://test.com">http://test.com</a>]
        Another line
        [Second Title|<a class="external" href="http://test.com">http://test.com</a>]
        More text
        [Third Title|<a class="external" href="http://test.com">http://test.com</a>]
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var textContainer = document.getElementById("testdiv");
var linkText = textContainer.innerHTML;
var pattern = /\[([^|]+)\|([^>]+.?)[^<]*(<\/a>)\]/g;
var result = linkText.replace(pattern, "$2$1$3");

textContainer.innerHTML = result;
Run Code Online (Sandbox Code Playgroud)

完整示例:http://jsfiddle.net/JFC72/17/

如何让它匹配"myclass"而不是?谢谢!

bwe*_*est 22

在原型中使用css选择器.

var textContainer = $$('div.myclass')[0];
Run Code Online (Sandbox Code Playgroud)

的jsfiddle


jon*_*tar 9

我想你需要这个$$方法.它选择与CSS选择器严格匹配的DOM元素.在这种情况下你想要

var elements = $$('.myclass');
Run Code Online (Sandbox Code Playgroud)

它按文档顺序返回所有匹配元素的列表.您可以通过索引访问它们或使用类似的操作对它们进行操作each

http://www.prototypejs.org/api/utility

这就是Prototype的意义所在.getElementById是oooold