gpt4 book ai didi

javascript - 我无法从 JS 创建的 HTML 中获取数据

转载 作者:行者123 更新时间:2023-11-30 12:59:34 24 4
gpt4 key购买 nike

我使用 jQuery 创建新的 HTML,但是当我使用 $.get 或 $.ajax 方法时它无法获取该数据?例如我测试了一个简单的 jQuery :

$(function () {
$(".tc3").html('<div id="test" ></div>');

if($('.noprint a[href*="/f1-"]:first').length){
$.ajax({
url: '/f1-' ,
type: 'GET',
success: function(data) {
d = $('#test', data).length;
alert(d)
}
});
}
});

但是当我尝试警告时,结果是 0 。所以为什么 ?谢谢回复

最佳答案

虽然我可能会弄错,但我相当确定您的语法不正确。

在表达式 $('#test', data) 中,你正在传递 data作为约束选择器的上下文,#test , 可以匹配。

来自jQuery documentation :

By default, selectors perform their searches within the DOM starting at the document root. However, an alternate context can be given for the search by using the optional second parameter to the $() function. For example, to do a search within an event handler, the search can be restricted like so:

$( "div.foo" ).click(function() {
$( "span", this ).addClass( "bar" );
});

When the search for the span selector is restricted to the context of this, only spans within the clicked element will get the additional class.

Internally, selector context is implemented with the .find() method, so $( "span", this ) is equivalent to $( this ).find( "span" ).

考虑到这一点,您的上述 data对象必须是 DOM 元素、文档或 jQuery 对象才能正确地限制 #test 的范围。选择器。自 data不太可能是这些对象中的任何一个,约束将为 #test 产生无效范围被发现。因此,0 被警告。

因为我不相信约束 #test选择器是您的意图(毕竟无论上下文如何,在有效的 HTML 页面上只能有一个 ID 为 test 的元素),我只能假设您打算附加 data 的内容到 test分区如果我的假设是正确的,您应该将成功方法更改为:

success: function(data) { 
var d = $('#test').html(data).length;
alert(d);
}

在这种情况下,长度将为 1,因为 html()链接到初始 $('#test')选择器。由于页面上只有一个元素的 Id 为 test , 1 将被提醒。

如果您想要数据的长度,您可以直接使用 data.length 查询它这应该根据返回的对象或字符串为您提供适当的结果。

success: function(data) { 
$('#test').html(data);

var d = data.length;
alert(d);
}

最后如果data可以是 null、undefined 或 falsy 你可以使用 var d = data ? data.length : 0;以确保它始终默认为 0。

注意:除了解决您的语法问题外,这个答案的大部分内容都是推测性的,因为我不确定您想要完成什么。向您的问题添加更多详细信息将有助于我们更好地解决您的问题。

关于javascript - 我无法从 JS 创建的 HTML 中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737484/

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