2017-02-08 8 views
-1

GTMのカスタムJSを使用して配列を作成しました。この配列では、文字列を削除してから配列に値を追加して1つの最終値を与えます。私の配列は、このことから、次の値ノード配列 - JavaScriptの配列の値から再設定する方法

Array = [ [AED1,299.00], [AED2,699.00] ] 

を持って、私は「AED」を削除したい

とカンマ私はその後、追加して、

New_Array = [ [1299.00,], [2699.00] ] 

そして最後に残されていますように、私は3998を残しています。 私はGTMでこの値を取得したいと思います。 しかし、私のJSは未定義として返します。

提供されてのソリューションを使用して私のカスタムJS

function myfunction() { 
    var no_products = document.querySelectorAll('span.price'); 

    var nodearray = [].slice.call(no_products); 

    for (var i = 0; i < nodearray.length; i++) { 
    nodearray[i] = nodearray[i].replace(/,/g, ''); 
    } 

    for (var i = 0; i < nodearray.length; i++) { 
    nodearray[i] = nodearray[i].replace('AED', ''); 
    } 

    var sum = 0; 
    for (var i = nodearray.length; !!i--;) { 
     sum += nodearray[i]; 
    } 
    return sum 
} 

、それはまだ 'NULL' の値で返します。 問題は、私が最初に定義した変数が「no_products」と「nodearray」であるように見えます。

私は、私たちのページのいずれかですべての製品価格を取得しようとしています。 AED1,299.00とAED2,699.00の2つの価格がページにあります。

価格はいずれもスパンクラス=「価格」 AED1,299.00またはAED2,699.00です。 GTMでは、両方の価格を取得できるようにdocument.querySelectorAll( 'span.price')を使用しています。 それは「no_products」です。

2つの価格をキャプチャした後、それらを「nodearray」の最初の定義が行っている配列に配置したいと思います。 だけGTMプレビューでこれを見て、私はそれが

の値を返す参照[[オブジェクトHTMLSpanElement]、[オブジェクトがHTMLSpanElement]]

は私の定義は正しいでしょうか?

+0

あなたの最初の 'Array'は正しくありません。ネストされた配列内の 'string'ですか? – Weedoze

+0

「AED1」と「AED2」の値を加えてください。 –

答えて

0

問題はmyfunction()です。ネストした配列があるので、nodearray[0]と書くと、"AED1,299.00"ではなく["AED1,299.00"]が返されます。 "AED1,299.00"を検索するには、nodearray[0][0]と書かなければなりません。 https://jsfiddle.net/ugjke98k/

PS:

このフィドルを参照してください、私はあなたの配列が [ ["AED1,299.00"], ["AED2,699.00"] ]であるという仮説を取りました。もしそうなら、あなたが次回投稿するときに "を忘れないでください。

関連する問題