Javascript 填充html表格

Javascript 填充html表格,javascript,jquery,html,Javascript,Jquery,Html,假设我有这样的html表: <table> <tr> <td>16</td> <td>3</td> <td>2</td> <td>13</td> </tr> <tr> <td>5</td> <td>1

假设我有这样的html表:

<table>
    <tr>
        <td>16</td>
        <td>3</td>
        <td>2</td>
        <td>13</td>
    </tr>
    <tr>
        <td>5</td>
        <td>10</td>
        <td>11</td>
        <td>8</td>
    </tr>
    <tr>
        <td>9</td>
        <td>6</td>
        <td>7</td>
        <td>12</td>
    </tr>
    <tr>
        <td>4</td>
        <td>15</td>
        <td>14</td>
        <td>1</td>
    </tr>
</table>

16
3.
2.
13
5.
10
11
8.
9
6.
7.
12
4.
15
14
1.
并且有这样的字符串:
我和我的狗).

我该怎么做,带jquery库的javascript通过我的字符串进行迭代,并将这个字符串符号附加到我的html表中,这样,第一个字母
i
进入td,其中td包含1个数字,空格进入第二个,
a
进入td和3等,我对js是新手,但必须这样做,我该怎么做

如何通过字符串进行迭代,并用相等的数字将字母附加到td?

尝试以下方法:

var data  = "I and my dog)..."

$("td").each(function(index){
   $(this).text(data[index])
});

首先,迭代字符串的每个字符:

for (var i=0, len=str.length; i<len; i++) {
  var char = str.charAt(i);
其中,
$table
是您的表,例如,
var$table=$(“表”)
在循环之外

完整代码:

var$table=$(“table”);
var str=“我和我的狗”;

对于(var i=0,len=str.length;i我将使用纯javascript

var str='I和我的狗)…',//测试字符串
//获取td元素的列表
td=document.getElementsByTagName('td'),
i=0,
l=总长度;
//遍历每个元素
对于(;i
您应该向我们展示您迄今为止所做的努力,以便为您提供指导。基本上,你必须选择所有的
$('td')
元素,然后使用
。每个
元素都
去做事情
我想你误解了这个问题。这将枚举所有TD,然后插入字符,因此第一个TD将被分配到
I
。这是错误的,因为DOM中的第一个TD不包含数字“1”。@ComFreek-Yup,你是对的,对不起。我认为Blue Skys的答案是正确的。好吧,给出建议,然后如何将这个新表收集到新字符串,每个tr,在tr之后,例如I a I I I y等,以及如何将字符串中的空格更改为斜杠?另外,您的代码没有附加到表中的数字,它是替换的it@ValdisAzamaris我不太明白你的第一句话。是否要从每一行和单元格构造一个新字符串?您可以使用
str.replace(/,“/”)轻松地用斜杠替换空格。(我更新了答案。)如果我有str=“gfd”并写str=str.replace(/,“/”);我看到“/gfd”,但必须替换所有空格…@ValdisAzamaris将
g
标志添加到正则表达式:
str.replace(//g,“/”)也许我误解了OP(@ValdisAzamaris),但我认为应该是我的:枚举字符串,将位置I处的字符分配给内容I的TD。是的,通过可怜的js是一个很好的解决方案,不要删除它,但我想先看看jQuery)@comfrek你的权利,I=0作为元素=1作为str=0;此
--
修复了problem@ValdisAzamaris纯javascript比jQuery快得多。
$("td:contains(" + (i+1) + ")", $table).text(char);
var $table = $("table");
var str = "I and my dog";

for (var i=0, len=str.length; i<len; i++) {
  var char = str.charAt(i);
  $("td", $table).filter(function() {
    return $(this).text() == (i+1);
  }).text(char);
}
var str = 'I and my dog)..', // test string
    // get list of td elements
    td = document.getElementsByTagName('td'),
    i = 0,
    l = td.length;

// iterate thru each <td> element
for (; i < l; i++) {
  // save the number in the current <td>
  var num = parseFloat(td[i].innerText);
  // fill the current <td> with the matching string index;
  td[i].innerHTML = num + (str[--num] || ''); 
 //  (str[--num] || '') this will catch undefined string index
}