我有一个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>
元素的提取在某种程度上不起作用。有什么我错过了吗?
答案 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>"