2016-07-24 10 views
0

かなり基本的な質問をしたいと思います。 関数内の文字列値をパラメーターとして引用符を付けずに送信する方法を見つける必要があります。といった。 私のhtmlファイルは次のようになります -JavaScriptで文字列をパラメータとして引用符で囲む方法

<p id='demo'> 
</p> 

とjsのコードは次のようになります -

function Random(data){ 
    document.getElementById("demo").data = "Paragraph changed!"; 
} 

Random(textContent); 

しかし、それだけでは動作しません! 他の技術を使って仕事をやり遂げることはできますか、それとも基本的に不可能ですか?

+1

「動作しない」と言ったらどういう意味ですか?何が起こると予想されていましたか、そして実際に何が起こったのですか? – smarx

+0

これを試してみてください: 'document.getElementById(" demo ")。innerHTML ="段落を変更しました! "; ' – demo

+0

私の質問は一般的なもので、文字列変数を使ってオブジェクトの属性にアクセスする方法、みんなは私の下で答えた。だから仲間を歓迎する! – Drazxier

答えて

0

引用符で囲まれていないJSプログラムのテキストではstringではなく、expressionです。

あなたのコードは、いくつかの理由で必要と思われる方法では機能しません。まず、渡されるdataパラメータで何もしていません。.dataは、getElementByIdで取得したDOM要素のプロパティです。 dataは、アクセスするプロパティーのリテラル名です。dataパラメーターの値への参照ではありません。あなたは、あなたがそれにアクセスするためにbracket notation instead of dot notationを使用する必要がありますdata変数として渡された名前のプロパティにアクセスするためには:

function random(data) { 
    document.getElementById("demo")[data] = "Paragraph changed!"; 
} 

random("textContent"); 

あなたは、私がRandomからrandomに関数名を変更し気付くでしょう。 constructor functionsの場合はconvention in JS to only use capitalized namesであるためです。

「文字列」を引用符で囲まずに使用しようとしたためです。 JavaScriptエンジンがrandom(textContent);を見ると、randomという名前の変数がtextContentという変数の値を最初のパラメータとして渡すことを意味すると解釈されます。 textContentという名前の変数を定義していないので、渡される値はundefinedです。引用符で囲むと文字列リテラルに変換され、意図した文字列が渡されます。

+0

私はなぜこれ(そして他の答え)が落ちて投票されたのか困惑しています。どちらかに何か問題があった場合は、何を知っているのがうれしいでしょう。 –

+0

本当にありがとう!それは私が楽しみにしていたものです。 ありがとうございました!私は実際にスタックオーバーフローの初心者です。 – Drazxier

+0

私はそれが助けられ、とても歓迎します:-)答えが役に立つなら、[あなたは](http://stackoverflow.com/help/someone-answers)upvoteそれを(通常[あなたは15の評判ポイントが必要です] (http:// stackoverflow。com/help/privileges/vote-up)をupvoteにしてください。あなたがここに参加し続けるのは難しいはずはありません。私はあなたが15人の担当者がいなくてもあなた自身の質問に答えをアップアップできるかどうか分からない)。また、最も有益な回答を[承諾](http://stackoverflow.com/help/accepted-answer)としてマークする必要があります。 –

1

あなたのコードが正しいですが、文字列変数を使用して、オブジェクトの属性にアクセスしたい場合は、このようにそれを行う必要があります:あなたは引用符なしの文字列」を渡すことはできません

document.getElementById("demo")[data] = "Paragraph changed!" 
+1

うわー、私はこれが彼が求めていたものだとは思わなかった... – Paul

+0

ありがとう男!私は属性にアクセスする方法を楽しみにしていた..しかし、専門用語の多くを知りませんでした..乾杯! – Drazxier

関連する問題