Javascript 传递数组数据
第1页(index.php)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中转义[],但最好不
您需要在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();是否正确?@user2892997name[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"));
});