我有以下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
});
那我在这里做错了什么?
答案 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