2017-06-18 4 views
-2

私はJsの中にリストを持っている:- Javascriptを

$("div#boxCartList input[class='inputPrdNo']").each(function(index){ 
var listPrdNo = $(this).val();)}; 

listPrdNoは、多くのprdNoのリストです(例:2334 7782 9923 2323 2324 4342 DST)

私は選択したいです私はこの

  var limit = listPrdNo.length < 3 ? listPrdNo.length : 3; 
      if (listPrdNo.length > 1){ 
      for(var i =0; i < limit; i++){ 
      var prdNum = $("div#boxCartList input[class='inputPrdNo']")[i]; 
      if (i == 0){ 
      p += prdNum; 
      } 
      if (i > 0 && i < limit){ 
      p += ","; 
      } 
      if (i > 0){ 
      p += prdNum; 
      } 
      }}else if (listPrdNo.length == 1){ 
      var prdNum = $("div#boxCartList input[class='inputPrdNo']")[0]; 
      p += prdNum; 
      } 

ように連結することを試みた3トップprdNoと使用 ""(prdNo、prdNo、prdNo)

しかし結果は定義されていません、誰も私を助けることができますか?ここで

+0

あなたがHTMLを与えることができるしてください? – Booligoosh

+0

問題は最初に投稿されたコード行です。つまり、入力が繰り返し実行されています。つまり、関数はすべての入力に対して1回実行されています。 var products = $(セレクタ).slice(0,3).map(ここでは入力から値を返します); – Matt

答えて

0

は私が正しくあなたを理解していればこれを行うにははるかに簡単な方法です:

var listPrdNo = []; 

$("div#boxCartList input[class='inputPrdNo']").each(function(index){ listPrdNo.push($(this).val());) }; 

var limit = listPrdNo.length < 3 ? listPrdNo.length : 3; 

var top3 = []; 
for (var i = 0; i < 3; i++) { 
    top3.push(listPrdNo[i]); 
} 
var result = top3.join(" , "); 

console.log(result); // Now you can use the result string however you want! 
+0

がうまくいきます、ありがとうございました – fmou

+0

@それでも問題なければ、問題がupvote /肯定することを忘れないでください! ; D – Booligoosh