我有一个以下的Jquery代码:
var selectedQuestions = $("#SelectedQuestions");
var selectedCustomQuestions = $("#SelectedCustomQuestions");
var currentIds = new Array();
var currentText = new Array();
$("#CustomPickedTable td[data-question-id]").each(function () {
var clickedId = $(this).attr("data-question-id");
currentIds.push(clickedId);
$('#CustomPickedTable tr').each(function () {
var ClickedText= $(this).find("td[data-attr-id]:first").html();
currentText.push(ClickedText);
});
});
selectedCustomQuestions.val(currentText.join("|"));
selectedQuestions.val(currentIds.join(","));
$("form").submit();
}
我的表格中有两种类型的TD:
<td data-question-id="7">test</td>
和
<td data-attr-id="5">test</td>
我希望能够将em分类到不同的隐藏字段中,这些是我的隐藏字段:
@Html.HiddenFor(model => model.SelectedCustomQuestions, new { @id = "SelectedCustomQuestions" })
@Html.HiddenFor(model => model.SelectedQuestions, new { @id = "SelectedQuestions" })
我的Jquery代码在使用CurrentIds填充我的数组时起作用但是使用currentText我遇到了问题,如果我的表中有两个<td data-attr-id="5">test</td>
它们在我的数组列表中被复制而我的数组长度是7-10这很奇怪。 CurrentText应该只有2个长度而不是。我该如何解决这个问题?
问题示例。
我在表格中有以下内容:
<td data-attr-id="5">aaaa</td>
<td data-attr-id="5">ddd</td>
<td data-question-id="5">test</td>
<td data-question-id="15">test</td>
这是我调试jquery代码时发生的事情
提前致谢!
答案 0 :(得分:1)
只需稍加修改就可以尝试这个。
var selectedQuestions = $("#SelectedQuestions");
var selectedCustomQuestions = $("#SelectedCustomQuestions");
var currentIds = new Array();
var currentText = new Array();
$("#CustomPickedTable td[data-question-id]").each(function () {
var clickedId = $(this).attr("data-question-id");
currentIds.push(clickedId);
});
$('#CustomPickedTable td[data-attr-id]').each(function () {
var ClickedText = $(this).html();
currentText.push(ClickedText);
});
selectedCustomQuestions.val(currentText.join("|"));
selectedQuestions.val(currentIds.join(","));
答案 1 :(得分:0)
你似乎在你的查找选择器中使用“td [data-attr-id]:first”,但你在html中“使用data-attri-id”,注意添加的i。
编辑: 您可能还想使用
var currentIds = [];
var currentText = [];
而不是:
var currentIds = new Array();
var currentText = new Array();