2014-01-19 31 views
-1

我正在做一個函數,當你點擊它時,會改變表格中一行的顏色,這個表格中有很多行。 我正在開發Chrome(最新版本),它說功能「selectme」沒有定義。帶參數的JavaScript函數將不起作用

我的IDE沒有指示任何錯誤(Dreamweaver的CC)

<table> 
<tr onClick="selectme('1')"> 
<td class="name">Relaxing Beauty - Ryan Astruld</td> 
</tr> 
<tr onClick="selectme('2')"> 
<td class="name">Wheeving violins - John Lisbon</td> 
</tr> 
<tr onClick="selectme('3')"> 
<td class="name">Grace - David Parsons</td> 
</tr> 
<tr onClick="selectme('4')"> 
<td class="name">Linkin Park - In The End (cover)</td> 
</tr> 
</table> 

JavaScript的

function selectme(number) 
{ 
    var selector = "#" + number 
    $(selector).css("background-color", "rgb(3,135,255)"); 
    selected = number; 
} 
+0

是否'selectme'是另一個函數內象DOM準備處理您已經包括定義你的HTML功能'selectme' JS文件 –

+1

你沒有帶添加id屬性 –

+0

界定? – Adam

回答

-1

替換此

function selectme(number) 
{ 
    var selector = "#" + number 
    $(selector).css("background-color", "rgb(3,135,255)"); 
    selected = number; 
} 

function selectme(number) 
{ 
    var selector = "#" + number; //HERE YOU FORGOT SEMI-COLON 
    $(selector).css("background-color", "rgb(3,135,255)"); 
    selected = number; 
} 

而且你的HTML onclick將調用javascript函數,但在功能上你有 $(selector)應指向id="1"但與ID存在於您的頁面上沒有控制1. 所以也對你TD的

<td id="1" onclick="selectme('1');"></td> 
添加 id="1"

因爲你對TD的ID現在,你可以在onclick部分

<td id="1" onclick="selectme(this.id);"></td> 
+1

分號不是強制性的 –

+0

這不是錯誤。 selectme仍然沒有定義 – MortenMoulder

+0

把'alert(「我是HIT!」);'在你的selectme函數中,看看它是否彈出。確保你的函數在'',試着把它放在表加載之後 – Pierre

-1

沒有分號這裏直接引用它:

var selector = "#" + number; <-- HERE 
+0

這不是問題。不需要寫分號。 – MortenMoulder

1

你可以嘗試通過元素本身作爲參數,嘗試

<table> 
<tr onClick="selectme(this)"> 
<td class="name">Relaxing Beauty - Ryan Astruld</td> 
</tr> 
<tr onClick="selectme(this)"> 
<td class="name">Wheeving violins - John Lisbon</td> 
</tr> 
<tr onClick="selectme(this)"> 
<td class="name">Grace - David Parsons</td> 
</tr> 
<tr onClick="selectme(this)"> 
<td class="name">Linkin Park - In The End (cover)</td> 
</tr> 
</table> 

的Javascript

function selectme(elem){ 
     $(elem).css("background-color", "rgb(3,135,255)"); 
    } 

的jsfiddle here 或者你可以綁定表TR點擊事件,說表ID是myTab

$('#myTab tr').on('click',function(e){ 
    $(this).css("background-color", "rgb(3,135,255)"); 
}); 

的jsfiddle here

0
<table> 
     <tr id="1" onClick="selectme(this.id)"> 
     <td class="name">Relaxing Beauty - Ryan Astruld</td> 
     </tr> 
     <tr id="2" onClick="selectme(this.id)"> 
     <td class="name">Wheeving violins - John Lisbon</td> 
     </tr> 
     <tr id="3" onClick="selectme(this.id)"> 
     <td class="name">Grace - David Parsons</td> 
     </tr> 
     <tr id="4" onClick="selectme(this.id)"> 
     <td class="name">Linkin Park - In The End (cover)</td> 
     </tr> 
    </table> 

    function selectme(number) 
    { 

     $("#"+number).css("background-color", "rgb(3,135,255)"); 
     selected = number; 
    } 

試試這個

+0

我從來不知道你可以傳遞屬性作爲參數,這是非常有用的!非常感謝:D – SaucyGuy

0

我會建議你:

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script src="jquery.js" type="text/javascript"></script> 
    </head> 
    <body> 
     <table id="table12"> 
      <tr> 
       <td class="name">Relaxing Beauty - Ryan Astruld</td> 
      </tr> 
      <tr> 
       <td class="name">Wheeving violins - John Lisbon</td> 
      </tr> 
      <tr> 
       <td class="name">Grace - David Parsons</td> 
      </tr> 
      <tr> 
       <td class="name">Linkin Park - In The End (cover)</td> 
      </tr> 
     </table> 

     <script> 
      $(function(){ 
       $('#table12 tr').click(function(){ 
        console.log(this); 
        $(this).css("background-color", "rgb(3,135,255)"); 
       }); 
      }); 
      </script> 
    </body> 
</html> 
+0

謝謝:) jQuery已經包含了,我只是儘可能地修剪了代碼,以方便那些想要幫助的人:) – SaucyGuy

+0

我讓我的代碼像這樣對一切都變得清晰儘可能,我希望這會有所幫助。 – PRAISER

0

內聯事件處理程序是醜陋和難以維持。

爲什麼不嘗試不顯眼?

$("table tr").on("click", function(){ 
    $(this).toggleClass("blue"); 
}); 

Fiddle

如果您需要更改的行不同的顏色,你可以使用數據屬性,例如

<tr data-color="red"> 
    <td class="name">Relaxing Beauty - Ryan Astruld</td> 
</tr> 

$("table tr").on("click", function(){ 
    var color = $(this).data("color"); 
    $(this).toggleClass(color); 
});