0

何千もの異なる CSS セレクターを含む JSON がいくつかあります。ここにさまざまなサンプルがあります...

"#mid_ad_title",
"#mid_mpu",
"#mid_roll_ad_holder",
".SidebarAdvert",
".SitesGoogleAdsModule",
".SkyAdContainer",
"a[href$=\"/vghd.shtml\"]",
"a[href*=\"/adrotate/adrotate-out.php?\"]",
"a[href^=\"http://ad-apac.doubleclick.net/\"]",
"#mn #center_col > div > h2.spon:first-child + ol:last-child",
"#resultspanel > #topads",
"#rhs_block > #mbEnd"

ご覧のとおり、JSON はさまざまなセレクターで構成されています。一部は単なるクラス、一部は単なる ID、一部は混合です。

セレクターのタイプに応じて、関連する JavaScript の「get」メソッドを使用したいので、単なる ID であるセレクターの場合はdocument.getElementById()、 などを使用します。

JSONをループするときにセレクターのタイプを教えてくれる正規表現や何かを知っている人はいますか? すなわち"class", "id", "other"

前もって感謝します。

4

1 に答える 1

0

私はあなたがより多くの用途を見つけると思いますswitch

var results = [];
for(var i = 0; i < selectors.length; i++){
    var s = selectors[i];
    if( s.indexOf(' ') !== -1){
        s = s.substring(0, s.indexOf(' '));
    }
    switch(selectors[i][0]){
        case '#': // ID
        results.push(document.getElementById(s.substr(1)));
        break;
    case '.': // Class
        results.push(document.getElementsByClassName(s.substr(1)));
        break;
    default: // Tag
        results.push(document.getElementsByTagName(s));
        break;
    }
}

ただし、唯一の信頼できる解決策は、次を使用することです。

document.querySelectorAll(selector);
于 2013-01-04T15:39:06.340 に答える