0

甚至可以用jQuery做这样的事情:

我有几乎空的html文件index.php(没有内容,只有重要的标签),还有文件content.php,里面有所有的网页内容,例如:blablabla,很多标签, div 和其他内容。例如,所有这些内容都是 700px 长。

现在我想做的是用 jQuery 做这个:在标签之间的文件 index.php 中输入这个命令,然后再添加一个 jQuery 东西,将 .content.heigth() 放入任何变量中(这样它就会显示,文件 content.php 中的所有内容有多长(在本例中为 700 像素)。

我试图做这些事情,一切都很好,直到我必须将文件的内容长度放入变量的地方。

这是我的代码。可能有人可以修复它,但在我看来,这都是错误的。

所有 jQuery 命令都写在 index.php 文件中。

$(document).ready(function() {
    $('body').append("<?php include ('content.php'); ?>");
    $length = $('.content').length;
});

$length 显示 0 但它应该大于 0 ^_^

最重要的是通过 jQuery 或任何其他语言的帮助从 index.php 文件中了解 content.php 文件中内容的长度有多长。使用 .load('content.php') 命令也可以包含文件,但该命令看不到包含文件的内容长度。

感谢帮助!:)

4

3 回答 3

2
$('body').append("<?php include ('content.php'); ?>");

不要那样做!没有充分的理由这样做,而且您很可能会遇到换行和/或未转义引号的问题。只需<?php include ('content.php'); ?>直接在正文的末尾添加,然后从 document.ready 中获取高度(您几乎就在那里):

$(document).ready(function() {
    var height = $('.content').height();
    alert(height) // or do something with it
});

.load('content.php')在问题中提到。如果我建议的直接 php 包含不适合您的需求,请执行以下操作:

$(document).ready(function() {

    // You probably want a more specific container instead of body
    $(body).load('content.php', function(){

        // You can only read the height inside this callback

        var height = $('.content').height();
        alert(height) // or do something with it

        // Continue your program flow from here
        // (for example, call a function)
    }); 

    // CAUTION: here the content probably didn't load yet.
    // If you need to refer to it, do it from the callback above.
});

最后:如果你真的得到0了 for $('.content').length,那是因为在你调用它的那一刻,DOM 中没有具有类“内容”的元素。jQuery 对象的length属性告诉您有多少元素与您使用的选择器匹配,因此零表示无。

于 2013-08-08T02:33:26.420 回答
0

谢谢。问题是我必须将高度提醒到 (body).load 代码中,而不是在该代码旁边。

正确的:

$(document).ready(function() {
    $('body').load('content.php', function(){
        alert($('.content').height());
    });
});

错误的:

$(document).ready(function() {
    $('body').load(content.php', function(){})
    alert($('.content').height());
});
于 2013-08-08T13:42:15.007 回答
-1

据我了解,您想要内容的实际高度(以像素为单位)?在这种情况下,请采纳 Malcolm 的建议并使用 .height() 而不是 .length。

$(document).ready(function() {
    $('body').append("<?php include ('content.php'); ?>");
    $length = $('.content').length;
});

相反,如果您想查看块中有多少个字符,您可以执行以下操作。

$(document).ready(function() {
    $('body').append("<?php include ('content.php'); ?>");
    $length = $('.content').html().length;
});
于 2013-08-08T02:34:32.550 回答