0

jsFiddle へのリンク

parseInt()特定の数の要素 (現在の月に基づく) と特定のセレクタ ワイルドカードから値を取得し、それらの値を他の場所で使用するために 6 つの配列の 1 つにプッシュするために使用するテキストを含む多くの要素があります。コードをクリーンアップし、コンパクトなループを作成してこれらすべてを完了しようとしています。

6 つの別々のループを使用すれば、すべてを機能させるforことができますが、1 つのループで実行できるかどうかを試してみようと思いました。

したがって、for以下のループでは、次のようなことを試して、要素 ID の jQuery ワイルドカード セレクターをi(from statusArray) の現在の値にしようと$('[id*=statusArray[i]])していますが、うまくいかないようです。

次に、次のような方法で事前定義された適切な配列にデータをプッシュしたいと思いますstatusArray[i]Array.push(...)が、それも機能しません。さまざまな方法で連結しようとしましたが、うまくいかないようです。

どんな助けでも大歓迎です!前もって感謝します!

HTML:

<div id="jan_connected"></div>  <!-- left empty to test for NaN -->
<div id="jan_busy">100</div>
<div id="jan_noanswer">100</div>
<div id="jan_abandoned">100</div>
<div id="feb_minutes">100</div>
<div id="feb_totals_calls_c">100</div>
<div id="feb_connected">100</div>
<div id="feb_busy">100</div>
<div id="feb_noanswer">100</div>
<div id="feb_abandoned">100</div>

Javascript:

var connectedArray = [];
var busyArray = [];
var noanswerArray = [];
var abandonedArray = [];
var minutesArray = [];
var callsArray = [];
//    var date = new Date();
//    var dateNumber = 1 + date.getMonth();
var dateNumber = 2;
var statusArray = ['minutes', 'total_calls', 'connected', 'busy', 'noanswer', 'abandoned']

for (i=0; i<dateNumber; i++) {
    // Below I would like the id* to equal the current value of the statusArray iteration
    if (isNaN(parseInt($('[id*=statusArray[i]]').slice(i).html()))) {
        statusArray[i]Array.push("0");   // Trying to push into the appropriate array dynamically
    } else {
        statusArray[i]Array.push(parseInt($('[id*=statusArray[i]]').slice(i).html()));
    }
}
4

1 に答える 1

1

いくつかの場所で構文エラーがあります..

この行

$('[id*=statusArray[i]]')

察するに

$('[id*=' + statusArray[i] + ']')

 statusArray[i] Array.push("0");

する必要があります

 statusArray[i].push("0");

Pushメソッドは Array で使用できますが、配列でstatusArray[i]はなく文字列です。

このようなものを探しているようです

var connectedArray = [];
busyArray = [];
noanswerArray = [];
abandonedArray = [];
minutesArray = [];
callsArray = [];
dateNumber = 2;
statusArray = ['minutes', 'total_calls', 'connected', 'busy', 'noanswer', 'abandoned'];
var obj = {
    'minutes': minutesArray,
        'totals_calls': callsArray,
        'connected': connectedArray,
        'busy': busyArray,
        'noanswer': noanswerArray,
        'abandoned': abandonedArray
};

for (i = 0; i < statusArray.length; i++) {
    $('[id*="' + statusArray[i] + '"]').each(function () {
        var val = $(this).html();
        if (isNaN(parseInt(val))) {
            obj[statusArray[i]].push("0");
        } else {
            obj[statusArray[i]].push(val);
        }
    });
}

    console.log('Minutes Array: ' + obj['minutes']);
    console.log('Total Calls Array: ' + obj['totals_calls']);
    console.log('Connected Array: ' + obj['connected']);
    console.log('No Answer Array: ' + obj['noanswer']);
    console.log('Abandoned Array: ' + obj['abandoned']);
    console.log('Busy Array: ' + obj['busy']);

フィドルをチェック

于 2013-06-20T00:01:23.793 に答える