gpt4 book ai didi

php - 获取ajax生成的div中文本的长度

转载 作者:行者123 更新时间:2023-12-01 07:44:37 27 4
gpt4 key购买 nike

我有 .php 文档,数组中有很多字符串。我的页面采用其中之一并将其放入名为 post 的空 div 中。当我想获取帖子的长度时,它总是:

Uncaught TypeError: Cannot read property 'length' of undefined

所以我假设我的 jQuery 代码为 <div class="post"></div>在网站加载并生成文本之前,它是空白的。那么我怎样才能从我的 post.php 文档中获取生成字符串的长度呢?

<html>
<head>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script>
function getPost()
{
$.ajax({
type: 'POST',
url: 'posts.php',
dataType: 'html',
cache: false,
success: function(result) {
$('.post').html(result);
},
});
}
getPost();
</script>
</head>
<script>
var postPoints = $(".post").val().length;
</script>
<body>
<div class="post"></div>
</body>
</html>

posts.php

<?php
$posts = array(
"string1",
"string2",
"string3",
"string4"
);

$maxPosts = sizeof($posts);
$generatePost = rand(0,$maxPosts);
if($lastPost != $generatePost)
{
echo $posts[$generatePost];
$lastPost = $generatePost;
}
else
{
$generatePost = rand(0,$maxPosts);
echo $posts[$generatePost];
$lastPost = $generatePost;
}
?>

最佳答案

首先,脚本 var postPoints = $(".post").val().length; 根本找不到 post div,这就是为什么你得到 undefined 错误消息:

Uncaught TypeError: Cannot read property 'length' of undefined

这是因为您试图在页面完全加载之前获取 div(这可以使用 Ready 函数修复):

$(function(){
var postPoints = $(".post").val().length;
})

这样脚本就会找到您的 div 但它总是返回“0”

所以你应该在获取ajax请求的响应后获取长度,你必须将你的行放在成功回调中:

success: function(result) {
$('.post').html(result);
alert( $(".post").val().length );
},

希望这有帮助。

关于php - 获取ajax生成的div中文本的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978965/

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