2013-02-10 68 views
0

我試圖設置一個H2元素的值,但是這個值永遠不會改變。當我點擊我的網頁上的字母(A,B,C,等...),我嘗試更新的H2值,就像這樣:

function GetEntries(firstLetter) { 
    $('#letterChosen').innerHTML = firstLetter; 
} 

這裏是H2元素。

<h2 id="letterChosen" class="results">Results</h2> 

我已經嘗試了幾件事,和innerHTML屬性是我的最後一次嘗試。任何想法我做錯了什麼?請注意,參數firstLetter實際上有一個值,所以這不是問題。

+0

請記住,在提問時要精確。 – 2013-02-10 03:02:54

+0

@pst我一直在爲您的評論而努力。我通常會同意你對我的標題的改變,但我原來的標題是我在谷歌搜索的方式,因此更可能是其他人如何進行搜索。無論如何,我不會對此感到強烈,而且你的改變確實更精確。謝謝。 – 2013-02-10 04:59:57

+0

原來的標題是我投票爲「太本地化」的原因。你的「搜索嘗試」根本與問題無關;考慮對汽車修理工說「汽車熱」 - 他/她想什麼?而且,這真的會做出一個好的搜索查詢嗎?請嘗試使標題反映實際精煉的問題。 (另外,SO回答/問題被索引/搜索,所以沒有意義嘗試SEO的標題,這是人類消費這幾天。) – 2013-02-11 01:38:21

回答

3

試試這個:

document.getElementById('letterChosen').innerHTML = firstLetter; 

或者更好的是:

document.getElementById('letterChosen').firstChild.nodeValue = firstLetter; 

通過使用jQuery的$('#letterChosen'),你得到一個jQuery對象,而不是元素本身。您可以通過在末尾添加[0]來訪問該元素(所以$('#letterChosen')[0]),但在這種情況下,當存在完美的本地方法時,使用jQuery實際上是非常愚蠢的。

+0

+1,但我喜歡約瑟夫給出的較短的版本。謝謝! – 2013-02-10 02:47:18

+0

你不應該在沒有閱讀和理解的情況下使用Joseph的答案[一些原因](http://vanilla-js.com/)爲什麼我通過jQuery建議純JavaScript。 – 2013-02-10 03:15:35

+0

這很有趣。它基本上取決於速度,對吧?在通過ID檢索DOM元素的章節中,Vanilla JS比jQuery快35倍。我的第一反應是說我的應用程序太小以至於無所謂,但是,「做正確的事情」幾乎總是好的,所以當它真的很重要時,你就習慣了這樣做。 – 2013-02-10 04:54:36

2

因爲innerHTML不是jQuery方法。它實際上是本地的。請嘗試.html()

$('#letterChosen').html(firstLetter); 
+0

完美。這就是爲什麼如此石頭。謝謝! – 2013-02-10 02:46:56