在选择器中使用带字符串的变量的jQuery

在选择器中使用带字符串的变量的jQuery,jquery,Jquery,这段代码使用每行附近的选择框打印大约15行数据。我需要捕获用户为每行选择的值,以便将其发送到下一个函数。我收到这个错误:uncaughttypeerror:Object#没有方法“val”。有没有更好的方法来实现这一点 count = 1; $.each(data, function(index, element) { $('<div class="hd_field">Payment Format: <select name="Payment_Format" id="P

这段代码使用每行附近的选择框打印大约15行数据。我需要捕获用户为每行选择的值,以便将其发送到下一个函数。我收到这个错误:uncaughttypeerror:Object#没有方法“val”。有没有更好的方法来实现这一点

count = 1;
$.each(data, function(index, element) {
    $('<div class="hd_field">Payment Format: <select name="Payment_Format" id="Payment' + count + '" class="Payment_Format"><option value="CTX" selected="selected">Company to Company</option><option value="PPD">Company to Person</option></select><div id ="Selected_Format' + count + '"></div></div>').appendTo(newDiv3);
    $('select#Payment' + count).change(function() {
        alert(this.val());
        PaymentFormat = $(this).val();
        element.PmtRec.PmtFormat = PaymentFormat;
        $('#Selected_Format' + count).text(PaymentFormat);
    });
    console.log(data);
    count = count + 1;
});​
count=1;
$.each(数据、函数(索引、元素){
$(“支付格式:公司对公司公司对个人”)。附录(新第3部分);
$('select#Payment'+count).更改(函数(){
警报(this.val());
PaymentFormat=$(this.val();
element.PmtRec.PmtFormat=PaymentFormat;
$(“#所选_格式”+计数)。文本(PaymentFormat);
});
控制台日志(数据);
计数=计数+1;
});​

您的错误被抛出到这一行:

$('select#Payment'+count).change(function() { 
    alert(this.val()); //Here
    //...
});
问题是在
change
事件处理程序中,
this
引用实际的DOM节点,而不是jQuery对象,并且DOM节点将没有
val
方法。如果要使用
val
,则需要将其传递给jQuery:

$('select#Payment'+count).change(function() {
    alert($(this).val()); //Pass `this` to jQuery
    //...
});

data
变量是数组吗?是的,它是多维数组。或者更改为
alert(this.value)
谢谢你的帮助!但是,该警报只是一个测试,以查看.change是否起作用,.text仍然不起任何作用。此外,对象分配也不会在每次选择其他选项时都发生变化。