gpt4 book ai didi

javascript - jQuery:div 和 tbody 之间的查找行为不一致

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:18 24 4
gpt4 key购买 nike

我在 jQuery 中按 Id 使用 find 选择器。它在 divtbody 的情况下表现不同。这是一个更大的问题 - 为了清楚起见,这里是我原始问题的简化版本

HTML

<div id='iamdiv'>HELLO</div>
<table>
<tbody id='iamtbody'>
<tr><td>HELLO TOO</td></tr>
</tbody>
</table>
<input type='text' id='div'/>
<input type='text' id='tbody'/>

JS

$(document).ready(function() {
var allcontent = $($('body').html()); // I am deliberately doing this to input a HTML String.
var $divcontent = allcontent.find('#iamdiv');
$('#div').val($divcontent.html());
var $tbodycontent = allcontent.find('#iamtbody');
$('#tbody').val($tbodycontent.html());
});

fiddle :https://jsfiddle.net/bragboy/Lt8nua10/1/

我想在输入文本框中显示原始 html,但是只显示了 tbody 而不是 div。如果我使用 filter 方法而不是 find - 它 works对于 div 但不是 tbody。

我的目标是采用一种一致的方式来获取 tbody 和 div。

最佳答案

两个问题:

  1. find查找 后代 元素,但是 #iamdiv是您的 allcontents 中的顶级条目jQuery 对象。

  2. 您正在复制

    中的元素
    var allcontent = $($('body').html());

    行,我很确定这不是您想要做的。 (您说过这是故意的,以模拟从其他地方解析 HTML。 )

您说过您的目标是使用 find在这两个用例中(而不是在一个用例中使用 filter 而在另一个用例中使用 find)。为此,您需要有其他东西作为您的 allcontent 的根。 .

您还说过出于某种原因您无法更改

var allcontent = $($('body').html());

行,哪怕只是为了

var allcontent = $("<body>").append($('body').html());

没关系,您仍然可以通过在其后添加一行来添加新的根元素,如下所示:

allcontent = $("<body>").append(allcontent);

实例:

$(document).ready(function() {
var allcontent = $($("body").html()); // You've said we can't change this
// The added line:
allcontent = $("<body>").append(allcontent);
var $divcontent = allcontent.find('#iamdiv');
$('#div').val($divcontent.html());
var $tbodycontent = allcontent.find('#iamtbody');
$('#tbody').val($tbodycontent.html());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id='iamdiv'>HELLO</div>
<table>
<tbody id='iamtbody'>
<tr><td>HELLO TOO</td></tr>
</tbody>
</table>
<input type='text' id='div'/>
<input type='text' id='tbody'/>

关于javascript - jQuery:div 和 tbody 之间的查找行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com