如何确保我在左侧的新单元格中动态增加字母数字,在基于Select中选择的选项动态创建的行中的每个单元格旁边。这个新生成的字母表将被视为该特定行的文本框的项目符号/序列号。
js代码
$(document).ready(function(){
var select = $("#Number_of_position"), table = $("#Positions_names");
for (var i = 1; i <= 100; i++){
select.append('<option value="'+i+'">'+i+'</option>');
}
select.change(function () {
var rows = '';
for (var i = 0; i < $(this).val(); i++) {
rows += "<tr><td><input type='text'></td></tr>";
}
table.html(rows);
});
});
html
<select id="Number_of_position">
</select> <table id="Positions_names">
</table>
答案 0 :(得分:2)
这基本上是一个基本问题,你可以很容易地在javascript中搜索这个实现 - How to create a function that converts a Number to a Bijective Hexavigesimal?
alpha = "abcdefghijklmnopqrstuvwxyz";
function hex(a) {
// First figure out how many digits there are.
a += 1; // This line is funky
var c = 0;
var x = 1;
while (a >= x) {
c++;
a -= x;
x *= 26;
}
// Now you can do normal base conversion.
var s = "";
for (var i = 0; i < c; i++) {
s = alpha.charAt(a % 26) + s;
a = Math.floor(a/26);
}
return s;
}
所以你可以做到
$(document).ready(function(){
var select = $("#Number_of_position"), table = $("#Positions_names");
for (var i = 1; i <= 100; i++){
select.append('<option value="'+i+'">'+i+'</option>');
}
select.change(function () {
var rows = '';
for (var i = 0; i < $(this).val(); i++) {
rows += "<tr><td>" + hex(i) + "</td><td><input type='text'></td></tr>";
}
table.html(rows);
});
});
下面是示例http://jsfiddle.net/v2ksyy7L/6/
如果你想让它成为大写,那就
hex(i).toUpperCase();
此外 - 这将适用于javascript可以处理的任意数量的行
答案 1 :(得分:1)
如果我理解正确的话,那也许就是你想要的:
http://jsfiddle.net/v2ksyy7L/3/
我为字母添加了一个数组:
var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
然后将输出添加到“渲染”循环中:
rows += "<tr><td>" + alphabet[i] + " <input type='text'></td></tr>";