2014-01-30 27 views
0

我有以下代碼字符串轉換爲jQuery對象和提取數據從它

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); 

jsfiddle

在Chrome中,我期待的我的jsfiddle的結果是

「內容爲測試
測試」

,而不是我得到

內容是

缺少什麼我在這裏?

在IE 9我得到正確的結果..

回答

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 

jsfiddle

+0

得到它..非常感謝你 –