2011-06-30 11 views
1

これは1時間以上です。これは私のindex.phpファイル内のJavaScriptコードです。はJavaScriptで文字列の長さを取得できません

function dostuff() 
{ 

    var thepath = document.location.search.substring(1); 
    alert('the path is ' + thepath + " (that's the full path)"); 
    alert(thepath); 

     // TRIED THESE ALL -- NONE OF THEM WORK. 
    //var pathLen = String.length("thepath"); 
    //var pathLen = String.length(thepath); 
    //var pathLen = thepath.length(); 
    var pathLen = String.length(document.location.search.substring(1)); 
    alert('pathLen is ' + pathLen); 
} 

症状:最初の2つの警告ボックスは全く問題と両方のショー「thepath」はそれで有効なパス名を持っているが表示されず、それはあまりにも正しい、期待パスです。

私は何をしようと試みても、一度に1つずつ試してみてください。最後の警告()ボックスは決して表示されません。 警告( 'pathLenは' + pathLenです)が表示されないのはなぜですか?

(他の事がある - 私はXdebugをし、XAMPPとNetBeansとないが、私はこのJavaScriptコードにブレークポイントを置くようになるデバッガを使用していますので、私もそれが何が起こっているか見るためにステップすることはできません私はNetbeansの作品で使用しているXDEBUGデバッガを知っています - 私は徹夜でPHPコードを別の.PHPファイルでデバッグしています。どのJavascriptコードでもブレークポイントを設定すると、 'broken breakpoint'アイコンが表示され、Netbeansのドキュメントでその意味がわかりません)。

+0

'String.length'はどのように機能すると思いますか?参照:https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String –

+0

@Felix - JavaScriptを使って文字列の長さを取得するためにString.length()を使用したサンプルをオンラインに基づいて作成しました。 - あなたはjavascriptのString.length()関数が動作しない、または存在しないと言っていますか? – wantTheBest

+0

それはまったく存在しません...あなたはその例をどこで見つけましたか? –

答えて

6

以前はその構文を見たことがありません。あなたはしようとする場合があります:

var pathLen = thepath.length; 

(あなたはFirebugのでデバッグをオフ最高のだろう)

+0

ありがとう、私はFirebugを調べるつもりです - 両方のphpとjavascriptをデバッグしますか?javascriptだけであれば、FirebugをNetbeans IDEにプラグインできますか? – wantTheBest

+1

@wantTheBest:FirebugはFirefox(ブラウザ内)でのみ動作します。 PHPをデバッグすることができる拡張機能* FirePHP *があります。ありがとうございます。 –

4
var pathLen = thepath.length; 

長さが文字列ではなく、機能、そう()が不要の財産です。

2
pathLen.length 

いいえ()。長さはプロパティです。 ()を追加すると、そのプロパティの値を呼び出して関数に使用して例外を発生させようとします。

+0

みんな、ここで私を助けてくれました。私はそれを受け入れる必要がありますが、彼らはすべていいです。正直言って、私はこの正当な理由だけでなく、この「受け入れ」の問題を抱えています。私は後で戻ってそれを世話するでしょう。私はコードを修正し、長さを正常に取得することができます - ありがとう。 – wantTheBest

2

長さは、メソッドではなく文字列のプロパティです。 次の経由でアクセスできるようにする必要があります

var pathLen = thepath.length; 

アラートボックスが現れることがないと言うとき、あなたはそれが全く表示されません意味ですか? FFを使用している場合は、[ツール]メニューからエラーコンソールを開き、それをクリアしてページを更新することができます。あなたのコードにあるJSエラーを強調表示する必要があります。それは私が知っている唯一の理由は、警告が全く表示されないということです。 (私は、おそらくエラーが来ているString.length()のクラスメソッドはないと思う)

XDebugについては、私が知っている限り、それはPHPのデバッガだけですそれはJSをデバッグできると思います。

+0

ありがとうK、いくつかの前線で大きな助けをここに - 私はxdebugは、PHPで働いて、おかげで、それはそれを説明していませんでした。私もjavascriptのエラーを見ることについて知らなかった - 私はFirefox(最新バージョン)を使用していると私はそれについて知っている今、エラーコンソールを壊していると私を信じています。ありがとう。 – wantTheBest

+0

問題ありません。 FFエラーコンソールはあなたのためにすべてを解決することはありませんが、それは任意の言語エラーなどに役立ちますFFのプラグインはあなたがJSに表示されるエラーを制限することができます取得することができます(必要に応じて今)。 JSをデバッグするための優れたツールがあります。私はそれをあまり使用しないので、私が定期的に使用するツールはありません。 – Killian

関連する問題