2012-06-07 36 views
1

我有一个包含周期表的表,这个jQuery当你点击一个元素的名字时,告诉你它的全称是什么。jQuery this.data-x不能正常工作

但是,当我点击一个没有发生......我尝试了不同的语法等,但仍然没有。

这里是我的表HTML看起来像(类= “S-4” 是指字体大小:4; - 并不意味着什么这个问题):

<td class="s-4"><a class="e" href="#" data-e="B">B</a></td> 
<td class="s-4"><a class="e" href="#" data-e="C">C</a></td> 
<td class="s-4"><a class="e" href="#" data-e="N">N</a></td> 
<td class="s-4"><a class="e" href="#" data-e="O">O</a></td> 
<td class="s-4"><a class="e" href="#" data-e="F">F</a></td> 
<td class="s-4"><a class="e" href="#" data-e="Ne">Ne</a></td> 

而且这里是我的jQuery/JavaScript的样子:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    $(".e").click(function() { 
    var e = this.data-e; 
     if(e == 'H') { $("#a").html('H is Hydrogen'); } 
     if(e == 'He') { $("#a").html('He is Helium'); } 
     if(e == 'Li') { $("#a").html('Li is Lithium'); } 
     if(e == 'Be') { $("#a").html('Be is Beryllium'); } 
     if(e == 'B') { $("#a").html('B is Boron'); } 
     if(e == 'C') { $("#a").html('C is Carbon'); } 
     if(e == 'N') { $("#a").html('N is Nitrogen'); } 
etc etc... and then 

    }); 
    }); 
    </script> 

#一个在我的页面的顶部是指<H1>,并.E是指链接(即你点击找出元素的name)

有没有人有任何想法?
感谢

回答

2
var e = this.data-e 

应该

var e = $(this).data('e'); 

var e = $(this).attr('data-e'); 

阅读.data()

+0

你可能会看到这个通过在你的Web浏览器中查看JavaScript控制台。一般来说,当JavaScript“什么都不做”时,这是我看起来的第一个地方。 –

+0

惊人的是多么简单。谢谢 – stackunderflow

+0

@EricJ。我做了 - 没有出现错误... Chrome Beta – stackunderflow

0
var e = this.data-e 

应该是

var e = $(this).attr(data-e); 
+0

谢谢。 'var e = $(this).data('e');'工作过(见上) – stackunderflow

1

您要访问的属性data-e在您的代码中有错误的语法。

语法错误

var e = this.data-e; 

正确的语法

var e = $(this).attr(data-e); 

您的代码将是

$(document).ready(function() { 
$(".e").click(function() { 
var e = $(this).attr(data-e); 
    if(e == 'H') { $("#a").html('H is Hydrogen'); } 
    if(e == 'He') { $("#a").html('He is Helium'); } 
    if(e == 'Li') { $("#a").html('Li is Lithium'); } 
    if(e == 'Be') { $("#a").html('Be is Beryllium'); } 
    if(e == 'B') { $("#a").html('B is Boron'); } 
    if(e == 'C') { $("#a").html('C is Carbon'); } 
    if(e == 'N') { $("#a").html('N is Nitrogen'); } 
etc etc... and then 

}); 
}); 
+0

对不起,我没有提供HTML。我也有顶部的< h1 id =“a”&rt; < h1 &rt;。无论如何,它现在都在运作。 – stackunderflow

+0

你说得对,我忽略了那部分 – Adil

0

改变这种

var e = this.data-e 

用这个

var e = $(this).attr("data-e");