我在js中动态构建一个表,其中每一行都有相同的元素
- input | input | **select** | **text** | **text** | **select**
Event 1 - input | input | **select** | **text** | **text** | **select**
- input | input | **select** | **text** | **text** | **select**
Event 2 ... ... .... ... ... ...
...
Event 10 ... ... .... ... ... ...
正如您所看到的,选择有一个类="地点"对于所有3&t; sd' s 当我选择一个值时,我希望它只更新NEXT 文本而不是所有文本元素。
$("select.place").change(function () {
$('.place').parent('td').next('#score').text("val")
});
这是使用val
更新所有文本文件我正在生成这样的行并将它们附加到表中:
'<td> ' +
'<select class="place"> ' +
'<option value="1">1</option> ' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'</select>' +
'</td>' +
'<td id="score"></td>' +
'<td id="score"></td>' +
'<td>' +
'<select class="place"> ' +
'<option value="1">1</option>' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'</select>'
正如您所看到的,我没有设置id唯一的课程
我不确定在&#34;选择&#34;之后设置值的最佳方法是什么?然后相反地在第二个之前设置值&#34;选择&#34;每行。
任何帮助/想法都会受到欢迎。
选择更改的代码:
$("select.place").change(function () {
switch (parseInt($('select.place').val())) {
case 1:
$(this).parent('td').next('#score').text("10");
break;
case 2:
$(this).parent('td').next('#score').text("8");
break;
case 3:
$(this).parent('td').next('#score').text("6");
break;
default:
$('select.place').val() == "0"
}
});
CODE循环遍历表以从对象中获取值
$("input:button").click(function () {
var values;
values = "";
$("table tr").each(function () {
$(this).find("td").filter(':visible').each(function (index) {
if(index =5)
{
if ($(this).find("text").val() != undefined)
values += $(this).find("text").val() + ";";
if ($(this).find("label").text() != undefined)
values += $(this).find("label").text() + ";";
if ($(this).find("input").text() != undefined)
values += $(this).find("input").text() + ";";
if ($(this).find("select option:selected").text() != "")
values += $(this).find("select option:selected").text() + ";";
}
});
});
values = values.replace(/\;;/g, ";");
console.log(values)
});
答案 0 :(得分:1)
在你的更改功能中,你有一个jquery选择器,用于选择class =&#34; place&#34;并将文本应用于他们。请记住,在大多数事件处理程序中此指的是已激活的html元素。所以:
$("select.place").change(function () {
$(this).parent('td').next('#score').text("val");
});