Javascript 传递数组数据

Javascript 传递数组数据,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,第1页(index.php) 您需要在id中转义[] for (var i = 0; i < 2; i++) { $('#name\\[' + i + '\\]').on('change', function () { alert(1); }); } 然后 您需要在前面退出[和] $('#name\\[' + i + '\\]').on('change', function () { alert(1); }); 您必须在id中转义[],但最好不

第1页(index.php)



您需要在id中转义
[]

for (var i = 0; i < 2; i++) {
    $('#name\\[' + i + '\\]').on('change', function () {
        alert(1);
    });
}
然后



您需要在前面退出
[
]

$('#name\\[' + i + '\\]').on('change', function () {
    alert(1);
});

您必须在id中转义
[]
,但最好不要在id中引入
[]
,通常情况下,
[]
应该在
name
属性中使用

html:


或者您可以添加一个类并使用类选择器而不是id选择器。

我认为让标识符看起来像数组是个坏主意。 也许您可以使用“数据”属性

我稍微编辑了您的代码:

HTML

<?php for($i=0;$i<2;$i++) { ?>
<select id="name" data-index="[<?php echo $i;?>]">
    <option value="John">John</option>
    <option value="Alice">Alice</option>
</select>

<input type="text" id="name-id">

<input type="text" id="location">

<?php } ?>

您生成的标记无效,ID应该是唯一的。如果我想在同一页中添加另外5个相同的下拉菜单,该怎么办?如果没有阵列,则在名称中添加括号以构建阵列
正在工作…谢谢。。var name=新数组();name[i]=$('select#name\['+i+'\]')。val();是否正确?@user2892997
name[i]=$('select#name\\['+i+'\\\]').val()-您需要使用
\`not
`@user2892997欢迎乐于帮助:)
<select id="name[<?php echo $i;?>]" class="name">
    <option value="John">John</option>
    <option value="Alice">Alice</option>
</select>
$('select.name').on('change', function () {
    alert(1);
});
$('#name\\[' + i + '\\]').on('change', function () {
    alert(1);
});
<select id="name_<?php echo $i;?>" name="name[]">
$('select#name_'+i).on('change',function() { //...
<?php for($i=0;$i<2;$i++) { ?>
<select id="name" data-index="[<?php echo $i;?>]">
    <option value="John">John</option>
    <option value="Alice">Alice</option>
</select>

<input type="text" id="name-id">

<input type="text" id="location">

<?php } ?>
    $('body').on('change',"select#name", function () {
        alert($(this).data("index"));
    });