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]');
});