无法从HTML字符串中按ID检索元素

时间:2016-01-16 06:02:24

标签: jquery

我有一个PHP,它以下列格式将HTML片段作为字符串返回:

echo '<tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><span id="morerows">1</span>';

现在在客户端,我使用JQuery(2.1.4)将#morerows(在此示例中为1)的文本提取到本地var ifmore中,然后删除<span>来自原始HTML的进一步处理之前。以下是我正在尝试进行测试的目的:

var hr = createXMLHTTPRequestObject();
...
var return_data = hr.responseText;
var rdasHTML = $(return_data);
var ifmore = $('span#morerows', rdasHTML);
alert(ifmore.text());

但它只提醒空白。 HTTP请求处理正常,因为alert(return_data);显示了预期的值。只有<span>元素的提取在某种程度上不起作用。有什么我错过了吗?

1 个答案:

答案 0 :(得分:1)

您必须将代码包装在div中,因为现在jQuery只解析第一个标记并忽略其余标记。你的代码应该是:

echo '<div><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><tr><td>blah</td><td>more blah</td></tr><span id="morerows">1</span></div>';

进一步解释:

console.log($("<tr><td>test</td></tr><span>test</span>")[0].outerHTML);

给出:

"<tr><td>test</td></tr>"