我有以下代码
HTML
<span id = 'testlabel'></span>
JS
var test = '<tr style="display:none" class="projinfo">test<br/>test</tr>' +
'<tr><td column="Type"><b>Project</b></td><tr>';
var dom = $(test).filter('.projinfo');
var content = dom.length > 0 ? dom[0].innerHTML:'No data';
$('#testlabel').text('Content is ' + content);
在Chrome中,我期待我的jsfiddle的结果是
“内容是测试测试”
而不是
内容
我在这里缺少什么?
在IE 9中,我得到了正确的结果..
答案 0 :(得分:2)
看起来HTML jQuery创建的内容在Chrome上的评估方式并不相同(请注意它在IE中的作用)。这是因为<tr>
内部没有<td>
。如果您将内容更改为以下内容:
var test = '<tr style="display:none" class="projinfo"><td>test</td></tr>' +
'<tr><td column="Type"><b>Project</b></td><tr>';
var dom = $(test).filter('.projinfo').find('td');
var content = dom.length > 0 ? dom[0].innerHTML:'No data';
$('#testlabel').text('Content is ' + content);
它会正常工作:
Content is test