单击表格行时,行文本会复制到上面的输入以进行编辑。文本复制得很好,但我无法正确选择所有内容。我的文本与值不同(对于每个选择,它针对第三列),因此我无法使用选择的 .val() 。
我需要在文本与文本开头匹配的位置选择属性/属性以及是否可报销(第三列)。有想法吗? jsfiddle.net/7vLdxddr/14
$('.table').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
for (var i = 0; i < $(this).find("td").length; i++) {
// fill input values
$(this).closest("table").find("th").eq(i).find("input:text").val($(this).find("td").eq(i).text());
// fill selects
$(this).closest("table").find("th").eq(i).find("select").val($(this).find("td").eq(i).text());
}
});
最佳答案
如果您这样做,则不需要具有等于文本的值。
$('table').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
// fill inputs
$(this).closest("table").find("th").eq(0).find("input:text").val($(this).find("td").eq(0).text());
// fill selects
var text = $(this).find("td").eq(1).text();
var text3 = $(this).find("td").eq(2).text();
$(this).closest("table").find("th").eq(1).find("select option").filter(function() {
return $(this).text().indexOf(text) >= 0 && $(this).text().indexOf($(this).closest("table").find("th").eq(2).find('select option[value="' + text3 + '"]').text()) > 0;
}).prop('selected', true);
$(this).closest("table").find("th").eq(2).find('select').val(text3);
});
关于javascript - 通过文本而不是值选择属性选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25920759/