0

jQueryでこのようなことをすることさえ可能ですか:

ほとんど空の html ファイル index.php (コンテンツなし、重要なタグのみ) があります。また、内部にすべての Web ページ コンテンツがあるファイル content.php があります。 div およびその他のコンテンツ。たとえば、このコンテンツはすべて 700px の長さです。

今私がやりたいことは、jQuery でこれを行うことです: タグ間のファイル index.php でこのコマンドを入力し、この後に .content.heigth() を任意の変数に入れる jQuery をもう 1 つ追加します (表示されるように、ファイル content.php にあったすべてのコンテンツの長さ (この例では 700px))。

私はこれらのことをやろうとしましたが、ファイルのコンテンツの長さを変数に入れなければならない場所まで、すべてうまくいきました。

これが私のコードです。おそらく誰かがそれを修正できますが、私の意見では、それはすべて間違っています。

すべての 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した場合$('.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 のアドバイスに従い、.length の代わりに .height() を使用します。

$(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 に答える