2016-07-24 61 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 =“Paragraph changed!”;' – demo

+0

我的问题是一般的,我想知道如何使用字符串变量访问一个对象的属性,大家在下面回答我。所以欢呼队友! – Drazxier

回答

0

你不能传递一个字符串“没有引号“,在一个JS程序中没有被引号包围的文本不是string,它是一个expression

您的代码无法按照您认为应该出于几个原因的方式运行。首先,您没有对data参数进行任何操作。.data是您使用getElementById检索到的DOM元素的属性。 data是您正在访问的属性的文字名称,它不是对data参数的值的引用。为了与您传递的data变量名称来访问属性,你将需要使用bracket notation instead of dot notation访问它:

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

random("textContent"); 

你会注意到,我改变了函数的名字从Randomrandom。这是因为它是convention in JS to only use capitalized namesconstructor functions

它不工作的另一个原因是因为您尝试使用不带引号的“字符串”。当JavaScript引擎看到random(textContent);时,它将其解释为将含有名为textContent的变量的值作为第一个参数传递给random。由于您尚未定义名为textContent的变量,因此传入的值为undefined。引用它将它变成一个字符串文字,从而传递你想要的字符串。

+0

我对这个(和其他答案)为何被拒绝投票感到困惑。如果两者都有问题,很高兴知道是什么。 –

+0

非常感谢你的男人!这正是我期待的。 非常感谢你的回应!我实际上是一个堆栈溢出的初学者。 – Drazxier

+0

我很高兴它的帮助和欢迎SO :-)如果答案有帮助,[你应该](http://stackoverflow.com/help/someone-answers)upvote它(通常[你需要15声望点] (HTTP://计算器。com/help/privileges/vote-up)来upvote,如果你继续参加SO,这应该不难;我不确定你是否可以在没有15位代表的情况下在你自己的问题上得到答案)。您还应该将最有用的答案标记为[accepted](http://stackoverflow.com/help/accepted-answer)。 –

1

你的代码是正确的,但如果你想使用一个字符串变量访问对象的属性,你需要做的是这样的:

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

哇,我没有得到,这是他所问... – Paul

+0

谢谢你!我期待着如何访问属性..但不知道太多的术语..干杯队友! – Drazxier

相关问题