2015-02-06 46 views
0

我是JavaScript新手,经过多次尝试创建一个“快捷方式”以使用getElementById函数,我几乎放弃了。我知道这有什么问题,但我找不到错误。在函数中使用getElementById(JavaScript)

这是HTML

<body> 
    <table> 
     <tr> 
      <td>Name: </td> 
      <td id="name"></td> 
     </tr> 
    </table> 
<script src="JS/return.js"></script> 

,这是JavaScript代码:

var hotel = { 
    name: "Park", 
    roomRate: 240, 
    discount: 15/100, 
    offerPrice: function() { 
    var offerRate = this.roomRate - (this.roomRate * this.discount); 
    return offerRate; 
    } 
}; 

function element(idName, text) { 
    var idd = document.getElementById(idName).textContent = text; 
} 

element(name, hotel.name); 

我感谢所有帮助我能:)

编辑:

谢谢!正确的代码如下:

function element(idName, text) { 
    var idd = document.getElementById(idName).textContent = text; 
} 

element("name", hotel.name); 
+0

任何错误,在浏览器的JavaScript控制台? 'name'在哪里,你传递给'element(name,hotel.name)'的第一个参数是从哪里来的?这个函数里应该是什么'idd'? – 2015-02-06 17:55:29

+0

添加一个'return'值 – pbaldauf 2015-02-06 17:56:17

+1

'element(name,hotel.name)'应该是'element('name',hotel.name)'。 http://jsfiddle.net/j08691/7nrrffe7/ – j08691 2015-02-06 17:56:47

回答

0

您需要定义您在element

//need to define a name first 
var name = "name"; 

function element(idName, text) { 
    document.getElementById(idName).textContent = text; 
} 

element(name, hotel.name); 
0

你传递一个叫名到函数变量作为第一个参数使用一个变量,但你的避风港没有在你的代码中定义它。

如果你想保留的命名灵活,只需在脚本中定义变量如下:

var name = "name"; 

如果你在传递ID设置,只需通过该方法传递字符串“名” 。

这里要理解的重要一点是,您需要通过您的方法传递ID的字符串,或者作为等于字符串的变量或字符串本身。

另外,如果您想在定义对象后操作对象,则需要将其返回。但一次只有一个问题!

1

试试这个

function element(idName, text) { 
    var idd = document.getElementById(idName); 
    idd.textContent = text; 
} 

element("name", hotel.name); 

第一,获得元素,然后分别修改其内容

http://jsfiddle.net/h40qrdwg/