javascript - 在 jquery ajax html 答案中查找元素

标签 javascript jquery html ajax

以下代码:

        ajax_obj = $.ajax(
        {
        data: data,
        success: function(answer)
        {
            console.log(answer);
            console.log($('#table_conferences_tbody', answer).html());
            console.log($(answer).find('tbody').html());
            console.log($(answer).find('tr').length);
        }
    }); 

控制台结果:

<div><tbody id="table_conferences_tbody"><tr id="conf26" class="darkrow"><td><span class="expand">&nbsp;</span></td><td class="cm_aln">20.03.26</td><td class="no_border">13:00</td><td class="cm_aln no_border">&minus;</td><td>14:00</td><td>TEst</td><td>Test</td><td>Dr. Fariss Chegrani</td></tr><tr id="conf25" class="lightrow"><td>&nbsp;</td><td class="cm_aln">20.02.26</td><td class="no_border">12:00</td><td class="cm_aln no_border">&minus;</td><td>13:00</td><td>Test</td><td>Test</td><td> Petra Haubrich</td></tr><tr id="conf27" class="darkrow"><td>&nbsp;</td><td class="cm_aln">20.03.20</td><td class="no_border">12:11</td><td class="cm_aln no_border">&minus;</td><td>13:11</td><td>Test</td><td>TEst</td><td>Dr. Ariane Hähn</td></tr><tr id="conf24" class="lightrow"><td>&nbsp;</td><td class="cm_aln">30.11.12</td><td class="no_border">15:00</td><td class="cm_aln no_border">&minus;</td><td>17:00</td><td>Test</td><td>Test</td><td> Petra Haubrich</td></tr></tbody></div>
undefined
undefined
0

我不明白为什么我在答案中找不到任何元素。它与其他答案兼容,所以我真的被困在这里。我验证了 html 答案,它似乎是正确的。我做错了什么?非常感谢...

最佳答案

<tbody>

Usage context:

Permitted parent elements:

Within the required parent <table> element, the <tbody> element can be added after a <caption>, <colgroup>, <thead> and a <tfoot> element.

<小时/>

如果可能,请尝试添加 <table>要换行的元素 <tbody> html 中的元素。请参阅 <table>

// added `<table>` element as parent of `<tbody>` element
var html = '<div><table><tbody id="table_conferences_tbody"><tr id="conf26" class="darkrow"><td><span class="expand">&nbsp;</span></td><td class="cm_aln">20.03.26</td><td class="no_border">13:00</td><td class="cm_aln no_border">&minus;</td><td>14:00</td><td>TEst</td><td>Test</td><td>Dr. Fariss Chegrani</td></tr><tr id="conf25" class="lightrow"><td>&nbsp;</td><td class="cm_aln">20.02.26</td><td class="no_border">12:00</td><td class="cm_aln no_border">&minus;</td><td>13:00</td><td>Test</td><td>Test</td><td> Petra Haubrich</td></tr><tr id="conf27" class="darkrow"><td>&nbsp;</td><td class="cm_aln">20.03.20</td><td class="no_border">12:11</td><td class="cm_aln no_border">&minus;</td><td>13:11</td><td>Test</td><td>TEst</td><td>Dr. Ariane Hähn</td></tr><tr id="conf24" class="lightrow"><td>&nbsp;</td><td class="cm_aln">30.11.12</td><td class="no_border">15:00</td><td class="cm_aln no_border">&minus;</td><td>17:00</td><td>Test</td><td>Test</td><td> Petra Haubrich</td></tr></tbody></table></div>';
var answer = $(html);
console.log(answer);
console.log($('#table_conferences_tbody', answer).html());
console.log(answer.find('tbody').html()); // removed second call to `jQuery()` around `answer`
console.log(answer.find('tr').length);

var withTable = "<div><table><tbody><tr>b</tr></tbody></table></div>";
var withoutTable = "<div><tbody><tr>a</tr></tbody></div>";    
console.log($(withTable), $(withTable).find("tbody")
           , $(withoutTable),  $(withoutTable).find("tbody"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

关于javascript - 在 jquery ajax html 答案中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016436/

相关文章:

javascript - react-dates 组件不允许选择当前日期之前的日期

javascript - 使用 AJAX 和 jQuery 完成表单输入

html - 为什么 extractHTMLStrip() from tm.plugin.webmining 会截断 61 个字符以下的字符串?

javascript - 如何在javascript中从本地PC获取目录的内容

javascript - 删除基于另一个数组的数组元素

javascript - 准备好后从 Javascript 调用 Silverlight 方法

javascript - 使用 jQuery 为 textarea 中的文本着色

javascript - 如何从数组中选择前 2 项?

javascript - jquery树遍历

html - Angular2 ng-模板