1

我有两个包含客户信息的下拉列表。使用 PHP for 循环,我允许一次输入 5 个客户的详细信息。

for($i=1; $i<6; $i++)
{
   echo "<tr><td><select id=\"customer_" . $i . "_class\"></select></td>";
   echo "<td><select id=\"customer_" . $i . "_age\"></select></td></tr>";
}

现在我想以这样的方式执行一个 jQuery 函数,例如,如果 customer_2_class 发生变化,它会执行一些函数到其对应的 customer_2_age。

$("#customer_?_clas").change(function()
{
   //some function to execute on corresponding customer_?_age
});
4

3 回答 3

3

将类添加到您的<select>并将 id 移动到另一个属性,例如data

echo "<tr>";
echo "<td><select class=\"customer_class\" data-id=\"$i\"></select></td>";
echo "<td><select class=\"customer_age\" data-id=\"$i\"></select></td>";
echo "</tr>";

在你的 javascript 中:

$('.customer_class').change(function() {
  var id = $(this).attr('data-id');
  // process customer_class with this id
});
于 2012-06-01T02:55:26.230 回答
0

您可以使用属性 end-with selector

$('select[id$="_class"]').change(function() {

浏览完整的 jQuery 选择器列表可能是值得的。

于 2012-06-01T02:57:05.560 回答
0
$('select').
   filter(function() { 
       return /^customer_[0-9]_class$/.test(this.id); // filter on select 
                                                      // based on id format
   }) 
   . change(function() {                              // binding change 
                                                      // to filtered select
       var num = this.id.match(/\d/)[0];              // get numerical value 
                                                      // of select box on change

       $('#customer_' + num + '_age')                 // point to target select 
            .css('background', '#f00');               // do something
   });

工作样本

于 2012-06-01T03:09:03.277 回答