Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery$中的变量值在每个方法中都会发生变化?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么jQuery$中的变量值在每个方法中都会发生变化?

Javascript 为什么jQuery$中的变量值在每个方法中都会发生变化?,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试重命名嵌套在名为属性容器的div中的输入字段。用户可以创建多个属性容器。每次用户创建这个div时,我都要相应地重命名输入字段。这是我动态生成的表单 <div class="property-container"> <input type="hidden" name="proposal[process][systems][1][id]"> <input type="hidden" name="proposal[process][systems][1][n

我正在尝试重命名嵌套在名为
属性容器
的div中的输入字段。用户可以创建多个
属性容器
。每次用户创建这个div时,我都要相应地重命名输入字段。这是我动态生成的表单

<div class="property-container">
 <input type="hidden" name="proposal[process][systems][1][id]">
 <input type="hidden" name="proposal[process][systems][1][name]">
 <input type="hidden" name="proposal[process][systems][1][stations][1][id]">
 <input type="hidden" name="proposal[process][systems][1][stations][1][name]">
 <input type="hidden" name="proposal[process][systems][1][stations][1][price]">
</div>
如您所见,我在
$中打印出
系统id
。each()
方法,我每次都看到数字是正确的,但字段名称中的值不相同。如果
system\u id
44,则字段名为1。我不明白它为什么会这样做。

试试看

station_container.find('.property-container').each(function(i, s){
    var hidden = $('input[type=hidden]:first', this);
    var system_id = $(this).index();
    $(this).append('SCI inside '+system_id);
    hidden.attr('name','proposal[process][systems]['+ system_id +'][id]');
    hidden.next().attr('name','proposal[process][systems]['+ system_id +'][name]');
    hidden.next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][id]');
    hidden.next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][name]');
    hidden.next().next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][price]');
});

我们可以看一个HTML的例子吗?
.index
没有返回您想要的内容可能有很多原因
.next().next().next().next().next()
~真的吗?@Sparky您有什么建议可以改进它吗?我发现了问题。问题是选择第一个输入。这就是它现在的工作原理<代码>变量容器=$(此);var hidden=container.find('input[type=“hidden”]:first')其余的都一样。我在上面修复了它。谢谢如何改进这一点?我不喜欢多次使用next()。有什么建议吗?
station_container.find('.property-container').each(function(i, s){
    var hidden = $('input[type=hidden]:first', this);
    var system_id = $(this).index();
    $(this).append('SCI inside '+system_id);
    hidden.attr('name','proposal[process][systems]['+ system_id +'][id]');
    hidden.next().attr('name','proposal[process][systems]['+ system_id +'][name]');
    hidden.next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][id]');
    hidden.next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][name]');
    hidden.next().next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][price]');
});