75

「createdOn」の ID と $unique-id を持つ複数の要素を作成した XSL があります。

Example : createdOnid0xfff5db30

JavaScript を使用して、これらを検索して変数に格納したいと考えています。私はもう試した

var dates = document.getElementsById(/createdOn/);

しかし、それはうまくいかないようです。

4

5 に答える 5

128

jQuery を使用すると、セレクターで始まる attrを使用できます。

var dates = $('[id^="createdOnid"]');

最新のブラウザーを使用すると、セレクターで始まる CSS3 属性値querySelectorAllを次のように使用できます。

var dates = document.querySelectorAll('*[id^="createdOnID"]');

ただし、古いブラウザー (および jQuery なし) のフォールバックには、次のものが必要です。

var dateRE = /^createdOnid/;
var dates=[],els=document.getElementsByTagName('*');
for (var i=els.length;i--;) if (dateRE.test(els[i].id)) dates.push(els[i]);
于 2012-04-11T18:20:21.463 に答える
7

あなたは jQuery にタグを付けておらず、おそらく必要もないので、これらの要素を作成するときに、これらの要素にクラスを追加することをお勧めします。次に、ほとんどのブラウザーに組み込まれている getElementsByClassName() 関数を使用します。IE の場合、次のようなものを追加する必要があります。

if (typeof document.getElementsByClassName!='function') {
    document.getElementsByClassName = function() {
        var elms = document.getElementsByTagName('*');
        var ei = new Array();
        for (i=0;i<elms.length;i++) {
            if (elms[i].getAttribute('class')) {
                ecl = elms[i].getAttribute('class').split(' ');
                for (j=0;j<ecl.length;j++) {
                    if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
                        ei.push(elms[i]);
                    }
                }
            } else if (elms[i].className) {
                ecl = elms[i].className.split(' ');
                for (j=0;j<ecl.length;j++) {
                    if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
                        ei.push(elms[i]);
                    }
                }
            }
        }
        return ei;
    }
}
于 2012-04-11T18:27:10.110 に答える
2
function idsLike(str){
    var nodes= document.body.getElementsByTagName('*'),
    L= nodes.length, A= [], temp;
    while(L){
        temp= nodes[--L].id || '';
        if(temp.indexOf(str)== 0) A.push(temp);
    }
    return A;
}

idsLike('createdOn')
于 2012-04-11T20:38:43.673 に答える
0

次のことを試してください。

var values = new Array(valueKey_1);
var keys = new Array("nameKey_1");
var form = document.forms[0];
for (var i = 0; i < form.length; i++) {
    name = form.elements[i].name;
    var startName = name.toLowerCase().substring(0, 18);
    if (startName == 'startStringExample') {
    values.push(name.value);
    keys.push(name);
    }
}
于 2014-01-13T14:29:21.170 に答える