jquery新手问题 jquery index()用法问题
关于jquery中index()函数的问题<body><table><thead><tr><thcolspan="2">鼠标点击表格项就可以编辑</th></tr></t...
关于jquery中index()函数的问题
<body>
<table>
<thead>
<tr>
<th colspan="2">鼠标点击表格项就可以编辑</th>
</tr>
</thead>
<tbody>
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<tr>
<td id="id">000001</td>
<td id="name">张三</td>
</tr>
<tr>
<td id="id">000002</td>
<td id="name">李四</td>
</tr>
<tr>
<td id="id">000003</td>
<td id="name">王五</td>
</tr>
<tr>
<td>000004</td>
<td>赵六</td>
</tr>
</tbody>
</table>
<input id="btnSave" type="button" value="确定">
</body>
页面很简单,就一个table
然后,点击提交的时候
$("#btnSave").click(function(){//按钮点击事件
var str = "";
var users = new Array();
$("table tbody tr").each(function(){
var tr = $(this);
var u = new User();
tr.find("td").each(function(){
var td = $(this);
var att = td.attr("id");
var value = td.html();
alert($(this).index());
if(att=="id") {
str = str + "{\"" + att +"\":\""+value +"\",";
u.id =value;
}
if(att=="name") {
str = str + "\""+att +"\":\""+value +"\" }";
u.name = value;
}
});
if(u.id!="") {
users.push(u);
}
});
str = "{\"users\":[" +str+"]}";
});
function User(id,name) {
this.id = id;
this.name = name;
return this;
}
关键是上条红色的代码,我想找出当前td在当前tr中的索引位置,可是每次都是返回-1
$(this).index();不是返回当前元素在同辈元素中的位置的吗?我这样写为什么不对?
我应该怎么写呢? 展开
<body>
<table>
<thead>
<tr>
<th colspan="2">鼠标点击表格项就可以编辑</th>
</tr>
</thead>
<tbody>
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<tr>
<td id="id">000001</td>
<td id="name">张三</td>
</tr>
<tr>
<td id="id">000002</td>
<td id="name">李四</td>
</tr>
<tr>
<td id="id">000003</td>
<td id="name">王五</td>
</tr>
<tr>
<td>000004</td>
<td>赵六</td>
</tr>
</tbody>
</table>
<input id="btnSave" type="button" value="确定">
</body>
页面很简单,就一个table
然后,点击提交的时候
$("#btnSave").click(function(){//按钮点击事件
var str = "";
var users = new Array();
$("table tbody tr").each(function(){
var tr = $(this);
var u = new User();
tr.find("td").each(function(){
var td = $(this);
var att = td.attr("id");
var value = td.html();
alert($(this).index());
if(att=="id") {
str = str + "{\"" + att +"\":\""+value +"\",";
u.id =value;
}
if(att=="name") {
str = str + "\""+att +"\":\""+value +"\" }";
u.name = value;
}
});
if(u.id!="") {
users.push(u);
}
});
str = "{\"users\":[" +str+"]}";
});
function User(id,name) {
this.id = id;
this.name = name;
return this;
}
关键是上条红色的代码,我想找出当前td在当前tr中的索引位置,可是每次都是返回-1
$(this).index();不是返回当前元素在同辈元素中的位置的吗?我这样写为什么不对?
我应该怎么写呢? 展开
展开全部
你的js写的没错,我这边运行也没有问题。
不过你的html写得有问题。你给多个td取了同样的id。id是唯一的,class才可以重用。
不过你的html写得有问题。你给多个td取了同样的id。id是唯一的,class才可以重用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
td 的id 不要重复 会有问题的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$("table tbody tr").each(function (index, domEle)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询