0

例を見てみましょう:

<div class="gg-1"></div> // 1
<div class="gg-1"></div> // 1
<div class="gg-1"></div> // 1

<div class="gg-3"></div> // 3
<div class="gg-3"></div> // 3

<div class="gg-5"></div> // 5
<div class="gg-5"></div> // 5

これらのdivクラスを更新して、以下の結果を得るにはどうすればよいですか?

<div class="gg-1"></div> // 1
<div class="gg-1"></div> // 1
<div class="gg-1"></div> // 1

<div class="gg-2"></div> // 2
<div class="gg-2"></div> // 2

<div class="gg-3"></div> // 3
<div class="gg-3"></div> // 3

純粋なJavascriptが必要です(追加としてJQuery)。

以下の私の関数は、接頭辞が付いたクラスごとに要素を取得するのに役立ちます。

function scn$(container,selectorTag,prefix) {
    var items = [], myPosts = document.getElementById(container).getElementsByTagName(selectorTag);

    for (var i = 0; i < myPosts.length; i++) {
        // Omit Undefined Null Check
        if (myPosts[i].className.lastIndexOf(prefix,0) === 0) {
            items.push(myPosts[i]);
        }
    }
    return items;
}

したがって、今のところ、で要素を選択できますscn$('container','div','gg-')

次は何ですか?アイデア/手がかりはありますか?

4

1 に答える 1

1

以下のアプローチを試して、私に知らせてください、

デモ:http: //jsfiddle.net/pmc3g/

(function() {

    function scn$(container, selectorTag, prefix) {
        var items = [],
            myPosts = document.getElementById(container).getElementsByTagName(selectorTag);

        var prevClass = null, curVal = 0;
        for (var i = 0; i < myPosts.length; i++) {
            var curClass = myPosts[i].className;
            // Omit Undefined Null Check
            if (curClass.lastIndexOf(prefix, 0) === 0) {

                if (prevClass != curClass) {
                    prevClass = curClass;
                    curVal++;                   
                }

                myPosts[i].className = prefix + curVal;
                items.push(myPosts[i]);
                console.log(myPosts[i].className);
            }
        }
        return items;
    }

    scn$('container', 'div', 'gg-');

})();
于 2012-09-17T21:03:00.097 に答える