2012-06-07 38 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");