文字列ジェネレータを作成していますが、最後の部分に固執しています。新しい行が配列にプッシュされるたびに、配列の最初の値を編集します。
私はいくつかの入力フィールドを持つテーブルを持っています。このテーブルはクローン化されている可能性がありますので、入力フィールドの数は5,10,15などとなります。
私はテーブル内のすべての入力フィールドをループする関数を使用しています。これらの行はすべて1つの配列にまとめられます。私は$(this).find(':input.generateinput').each
関数を使用して、これらの値を配列にプッシュします。問題は、すべての新しい行の最初の値の後に文字列を追加する必要があることです。
これらの私の結果は、ATMあり
1行目:Window:1:200:0:1
ニーズがあることを:Window:0:0.0000:1:200:0:1
2行:にする必要がありWindow:1:200:0:1,Door:1:100:0:2
:Window:0:0.0000:1:200:0:1,Door:0:0.0000:1:100:0:2
など..あなたのよう
追加する必要がある文字列を見ることができます= :0:0.0000
そして、Window:1:200:0:1
は、配置されている文字列ですrを配列外の値で除算します。
あなたが私の言いたいことを理解してもらえたら、私に聞いてみてください。
これは私が使用しているコードです:
$('.generateString').click(function(e) {
e.preventDefault();
var arrayProducts = new Array();
$('.tableProducts').each(function(i) {
if (typeof arrayProducts[i] == "undefined")
arrayProducts[i] = new Array();
$(this).find(':input.generateinput').each(function(k) {
// String that needs to be added behind every first item in a new array
var string = ":0:0.0000";
arrayProducts[i].push($(this).val());
// Here comes the last part of the code I think
});
});
var string = arrayProducts.join("|");
var productstring = string.replace(/,/g, ":");
var optionstring = arrayOptions.join("|");
$('#optionstring').html(optionstring);
$('#productstring').html(productstring.split(/:(?=\D)/g).toString());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="productdiv">
<table class="tableProducts">
<tbody>
<tr>
<td>SKU:</td>
<td>Default:</td>
<td>Default Quantity:</td>
<td>User defined:</td>
<td>Position:</td>
<td></td>
</tr>
<tr>
<td>
<input type="text" class="generateinput">
</td>
<td>
<select class="generateinput">
<option value="1">Yes</option>
<option value="0">No</option>
</select>
</td>
<td>
<input type="text" class="generateinput">
</td>
<td>
<select class="generateinput">
<option value="0">No</option>
<option value="1">Yes</option>
</select>
</td>
<td>
<input type="text" class="generateinput">
</td>
<td>
<button class="deleteProduct">Delete</button>
</td>
</tr>
<tr>
<td>
<button class="addproduct">Add Option</button>
</td>
</tr>
</tbody>
</table>
</div>
<hr class="hr">
<button class="generateString">Genereer string</button>
あなたは、配列の配列、または文字列の配列を作成しようとしていますか?あなたの 'Window:0:0.0000:1:200:0:1'の例は文字列のようですが、あなたのJSではネストされた配列を作成しました。 – nnnnnn
ウィンドウ:0:0.0000:1:200:0:1は文字列ですが、値は配列@nnnnnn –
@mplungjanです。その部分を使用すると、文字列はすべての入力の後ろにプッシュされます新しい配列の最初の項目の後ろに追加する –