簡體   English   中英

JS Prototype按類獲取元素?

[英]JS Prototype get element by class?

我得到了以下代碼,我試圖讓它匹配一個類而不是一個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>

使用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;

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

如何讓它匹配“myclass”而不是? 謝謝!

在原型中使用css選擇器

var textContainer = $$('div.myclass')[0];

的jsfiddle

我認為你需要$$方法。 它選擇與CSS選擇器嚴格匹配的DOM元素。 在這種情況下你想要

var elements = $$('.myclass');

它按文檔順序返回所有匹配元素的列表。 您可以通過索引訪問它們或使用each類似的操作對它們進行操作

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

這就是Prototype的意義所在。 getElementById是oooold

下面是一個工作示例,說明如何使用Prototype中的each元素循環遍歷所有帶有order-cc-charged類的元素。

var order_cc_charged = 0;

$$('order-cc-charged').each(function (elem) {
   order_cc_charged += parseFloat($('order-cc-charged').innerHTML);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM