【发布时间】:2013-06-22 12:17:45
【问题描述】:
我有一个输入文本框数组,简化如下:
<input type="text" name="quantity[3]" value="0">
<input type="text" name="quantity[6]" value="0">
<input type="text" name="quantity[7]" value="0">
<input type="text" name="quantity[11]" value="0">
这两种方法中的任何一种我都可以接受,但我什至不知道该怎么做:
当第 3 个输入框(索引为 7)发生变化时,我可以接受两个 alert()s 中的任何一个:
- 7(因为第3个文本框的真实索引是
7) - 2(因为它可能会从 0 开始计数,因此它的索引将是 2)
我不起作用的代码是:
$(document).ready(function(){
$('input[name^=quantity]').change(function(){
alert($(this).index());
});
})
链接:http://niamco.com/cp/problem.html
预计当用户更改任何数量文本框时,文本框的val() 及其正确的index() 都会收到警报。我们看到val() 输出正确,但index() 总是返回0。
由于val() 是正确的,我们应该确保jQuery 加载良好并且可以正常工作。那么为什么index() 不应该是真的呢?
奇怪的是,正如我所研究的,val() 和 index() 都是 jQuery 功能。如果val() 是 javascript 基础,则可以接受。但是现在,一个 jquery Base 函数可以工作,另一个不行!
【问题讨论】:
-
.index()获取元素的位置,我认为您需要使用简单的正则表达式来解析名称中的数字。 -
你的代码为我工作,以获得真正的索引。
-
如果 2 是可以接受的,那么您的代码正在运行
-->jsfiddle.net/V44Ty -
谢谢朋友们,我会检查小提琴的。我的不是真的工作。当它应该返回
2时,它正在返回0。 -
你用什么浏览器测试@smhnaji?
标签: javascript jquery arrays jquery-selectors