如何使用jquery更新标签标签

时间:2011-08-22 17:15:13

标签: javascript jquery dom

我有以下HTML:

<div id="myDiv">
  <table id="tbl0">
    <tr id="tr0" style="display: none;">
      <td>
        <label id="lbl0"></label>
      </td>
    </tr>
    <tr id="tr1" style="display: none;">
      <td>
        <label id="lbl1"></label>
      </td>
    </tr>
    <tr id="tr2" style="display: none;">
      <td>
        <label id="lbl2"></label>
      </td>
    </tr>
  </table>
</div>

以下jquery将行设置为可见并更新(但失败)带有一些文本的标签标记。

var myStr = $(this).text();
var myArr = myStr.split(',');

$.each(myArr, function (i) {

  // This part works just fine
  var tr = $('#myDiv').find("#tr" + i);
  tr.css('display', 'inline');

  // The label is found, but I can't get jquery to update the text of
  // ...it no matter what I try
  var lbl = tr.find("lbl" + i);

  lbl.val('hello world'); // doesn't work
  lbl.text('hello world'); // doesn't work
  lbl.html('hello world'); // doesn't work

});

那我在这里做错了什么?

4 个答案:

答案 0 :(得分:5)

试试这个......

var lbl = tr.find("#lbl" + i);

您正在尝试选择一个显然不存在的<lbl1/>标记

使用#指定要搜索的ID。

答案 1 :(得分:1)

您找到标签时出错了,您需要使用#来指定它是一个ID:

var lbl = tr.find("#lbl" + i);

这两种:

lbl.text('hello world');
lbl.html('hello world');

是设置标签文本的正确方法,我更喜欢.html(),因为它不会解析来自htmlspecialchars的字符串,它可能会稍快一些。

答案 2 :(得分:1)

错误在这一行:

var lbl = tr.find("#lbl" + i);

你忘了#符号,因为你正在查找ID。

答案 3 :(得分:0)

我偶然发现了这个帖子,虽然它帮助我朝着正确的方向前进,但是一旦我通过在label元素上设置File属性找到了我的标签,我就能够解决一个不同的方式。我正在使用jQuery。

innerHTML