2013-02-10 45 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