簡體   English   中英

從每個元素子字段獲取變量

[英]Get variables from each elements child field

我有一個不合作的購物車。 當點擊checkout按鈕時,除了提交表單之外,還需要將一些代碼發送回我從每行字段中提取的服務器。

HTML(簡體版)

<div class="row">
<input type="text" readonly="readonly" class="pp_name" value="Sample product">
<input type="hidden" class="pp_id" value="1234">
<input type="hidden" class="pp_stock" value="5">
</div>

<div class="row">
<input type="text" readonly="readonly" class="pp_name" value="Another item">
<input type="hidden" class="pp_id" value="7456">
<input type="hidden" class="pp_stock" value="2">
</div>

<div class="row">
<input type="text" readonly="readonly" class="pp_name" value="Some other thing">
<input type="hidden" class="pp_id" value="9121">
<input type="hidden" class="pp_stock" value="3">
</div>

<input type="submit" value="Checkout" id="checkout">

我需要在提交時輸出的腳本(它將向我的服務器發送每件商品的更新庫存數量,並從API庫調用函數):

$('#checkout').click(function(){

$('.row').each(function(){
var itemId = $('.pp_id').val;
var fieldId = 100;       // This var is a constant, static value
var newStockcount = $('.pp_stock').val;
setapikey(1234567890);
setMetadata( itemId, fieldId, newValue, );
});

});

我在編寫此腳本時嘗試的每個變體都無法獲取每一行中字段的值。 setMetadata函數沒有任何問題,我正在無數個站點上使用它而沒有問題。 它只是向無法使用的字段提供var。

即使我為每行設置一個ID並使用它來精確定位字段,也沒有好處。例如$('#checkout')。click(function(){

$('.row').each(function(){

$(this).attr('id', 'active_checkout_row'); //SET ID

var itemId = $('.pp_id').val;
var fieldId = 100;
var newStockcount = $('.pp_stock').val;
setapikey(1234567890);
setMetadata( itemId, fieldId, newValue, );

$(this).attr('id', 'inactive_checkout_row'); //UNSET ID

});

我已經待了兩天了,所以如果有幫助的靈魂可以告訴我我哪里出問題了,我將非常感激。

即使使用以下命令也不會產生結果:

var anyVariable = document.getElementById('active_checkout_row').getElementsByClassName('pp_name').value;

你快到了傑里米,

遍歷每一行時,您需要找到每個子元素。 當前,當您遍歷每一行時,您正在使用$('。pp_id')進行全局搜索,但實際上要執行的操作是找到.pp_id ,它是您所在的當前行的子級。

另外,在jQuery中,您需要調用帶有括號的.val()來獲取實際值。

這是獲取所需內容的jsFiddle

HTM保持不變。

JS:

$('#checkout').click(function(){

    $('.row').each(function(){
    var itemId = $(this).find('input.pp_id').val();
    var fieldId = 100;       // This var is a constant, static value
    var newStockcount = $(this).find('input.pp_stock').val();
        console.log('itemid:'+itemId+' fieldId:'+fieldId+' newStockcount:'+newStockcount);
    });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM