用jQuery包含文件并获取它的内容长度

时间:2013-08-08 02:22:54

标签: php javascript jquery html

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

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

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

我已经尝试过做这些事情,一切顺利,直到我必须将变量放入文件内容长度的地方。

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

所有jQuery命令都是用index.php文件编写的。

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

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

最重要的是要知道在index.php文件中使用jQuery或任何其他语言的帮助,content.php文件中的内容长度。使用.load('content.php')命令也可以包含文件,但是此命令看不到包含文件的内容长度。

感谢您的帮助! :)

3 个答案:

答案 0 :(得分: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 $('.content').length,那是因为在你调用它时,DOM中没有带有“content”类的元素。 jQuery对象的length属性告诉您有多少元素与您使用的选择器匹配,因此零为无。

答案 1 :(得分:0)

感谢。问题是我必须警告高度为(正文).load代码不在该代码旁边。

正确:

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

错:

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

答案 2 :(得分:-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;
});