我有一個jQuery .each
,通過div ID的循環,並從一個AJAX調用寫入JSON數據分配給一個類的輸入。
大多數div只有一行輸入來填充,但有些輸入類有兩行。
所有div和類都是動態創建的,但每個動態div都會獲得自己的唯一ID。寫每個數據到兩個不同的類與相同的div ID
當.each
碰到具有相同類的兩行的div時,它不會寫入兩個行,而是寫入第二行數據庫的第二行。
當用戶使用兩行數據寫入數據庫時,它會在數據庫中創建一個單獨的行。
一個用於badge1,另一個用於badge2。
這是我.each
寫入的投入很大
$.each(data, function(i, item) {
$("#" + item.full_op_id).find('.badge1').val(item.badge1);
$("#" + item.full_op_id).find('.badge2').val(item.badge2);
$("#" + item.full_op_id).find('.op_date').val(item.op_date);
$("#" + item.full_op_id).find('.op_qty').val(item.op_qty);
});
一行我已經試過幾件事,包括上只是那些ID與類兩行的if/else語句。
據我所知,當.each
看到這兩行時,它基本上將它看作一行,因爲它們具有相同的類名稱,除了badge1/badge2。
我應該在.each
內部運行另一個循環來遍歷併爲該div id和相同的輸入類寫入兩行嗎?如果是這樣,我該怎麼做?
關於應用程序的背景:使用Foundation 5創建,動態創建每個面板行與來自一個數據庫(MSSQL)的數據,然後使用AJAX/JSON用戶向其單獨的數據庫(MYSQL)寫入其輸入數據。
然後用戶應該能夠再次拉出作業,並通過從其輸入的MYSQL數據庫中提取數據來查看他們所做的工作。
這就是我試圖將JSON數據插入到每個div行和輸入的輸入時拉數據的分貝。
下面是創建這兩行的HTML:
<div class="row" id="op_div_id">
<div class="large-3 columns badge_div">
<label>
Operator 1 <span class="badge_required" style="font-size: 0.7em;">*required</span>
<div class="row collapse">
<div class="small-3 columns">
<button class="button prefix radius badge_scan_button" onclick="badgeButton1($(this));">
Scan
</button>
</div>
<div class="small-9 columns">
<input type="text" class="badge1" name="badge1" onchange="badgeColor1($(this));" placeholder="Badge Number">
<input type="hidden" class="time_assigned" name="time_assigned" value="">
</div>
</div>
</label>
</div>
<div class="large-3 columns date_div">
<label>Today's Date <span class="date_required" style="font-size: 0.7em;">*required</span>
<input type="text" class="op_date" name="op_date" onclick="popDate($(this));" placeholder="Today's Date">
</label>
</div>
<div class="large-3 columns qty_div">
<label>Quantity <span class="qty_required" style="font-size: 0.7em;">*required</span>
<input type="text" class="op_qty" name="op_qty" onblur="opQtyColor($(this));" placeholder="Quantity">
</label>
</div>
<div class="large-3 columns">
<label>Complete Operation</label>
<button class="button postfix save_op1" onclick="saveOp1($(this));">
Save
</button>
</div>
</div>
<div class="row" id="op_div_id2">
<div class="large-3 columns badge_div">
<label>
Operator 2 <span class="badge_required" style="font-size: 0.7em;">*required</span>
<div class="row collapse">
<div class="small-3 columns">
<button class="button prefix radius badge_scan_button" onclick="badgeButton2($(this));">
Scan
</button>
</div>
<div class="small-9 columns">
<input type="text" class="badge2" name="badge2" onchange="badgeColor2($(this));" placeholder="Badge Number">
<input type="hidden" class="time_assigned" name="time_assigned" value="">
</div>
</div>
</label>
</div>
<div class="large-3 columns date_div">
<label>Today's Date <span class="date_required" style="font-size: 0.7em;">*required</span>
<input type="text" class="op_date" name="op_date" onclick="popDate($(this));" placeholder="Today's Date">
</label>
</div>
<div class="large-3 columns qty_div">
<label>Quantity <span class="qty_required" style="font-size: 0.7em;">*required</span>
<input type="text" class="op_qty" name="op_qty" onblur="opQtyColor($(this));" placeholder="Quantity">
</label>
</div>
<div class="large-3 columns">
<label>Complete Operation</label>
<button class="button postfix save_op2" onclick="saveOp2($(this));">
Save
</button>
</div>
</div>
嘿,你可以讓一個jsfiddle並舉例說明你曾試過的If語句嗎?應該不需要第二個循環。看起來像你非常接近。它的一種混淆。 –
另外,當jQuery選擇器選擇一個ID並且在結果相同時重複使用它而不是「#」+ item.full_op_id四次會更有效率。例如:http://jsfiddle.net/pP8Zy/1/ – Jason
...或者直接鏈接這些方法:http://jsfiddle.net/isherwood/pP8Zy/2 – isherwood