2015-02-06 74 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/