2011-09-18 22 views
0

我從php填充列表,並使用onClick事件來運行JavaScript函數,一旦鏈接被點擊,我需要將引擎的值與鏈接被點擊了......目前正是通過將值分配給TITLE標籤,如下面的代碼所示,我知道這不是這樣做的正確方式,所以我怎樣才能將值存儲在頁面上以及能夠在javascript函數中訪問它們,因此根據點擊的鏈接檢索相應的值,我正在考慮將它們存儲爲JavaScript數組或對象?或關聯的東西,所以我可以從鏈接的id訪問它們,所以如果點擊鏈接的e213的id,一旦它被點擊,然後內部的JavaScript函數,我可以使用'objectname'.value +'idvariable',和屬性名稱將是「值」+鏈接的ID。在頁面上存儲值以使用javascript

任何幫助將非常感謝!

<?php 
    connect(); 
     $sql = "SELECT engine_id, engine, image, value FROM engines"; 
     $result = mysql_query($sql); 
      while ($row=mysql_fetch_array($result)) { 
      echo "<li><a style=\"color:#FF6600;\" id='e".$row['engine_id']."' title = '".$row['value']."' onclick='return enginepic(this)' onfocus='this.hideFocus=true;' href='".$row['image']."'>".$row['engine']."</a></li>"; 
     } 
?> 

回答

2

對於這種情況,HTML5允許attributes that start data-。如...

<div data-whatever-property="some value" id="some-id"></div> 

然後,您可以使用此獲取數據:

document.getElementById('some-id').getAttribute('data-whatever-property') 

或者使用jQuery ...

$('#some-id').attr('data-whatever-property') 

或者更簡單...

$('#some-id').data('whateverProperty') 

請注意,jQuery上的數據方法變成了one-two-threeoneTwoThree。這符合dataset part of the html5 spec

另外,請考慮通過JavaScript添加您的事件,而不是使用onclick/onfocus/etc屬性。有關鏈接列表,您可以從授權事件中獲得更好的性能,jquery makes these easy

+0

非常感謝,我已被告知,jQuery是要走的路,而不是內嵌的JavaScript。 – Lee

+0

如果你不想用jQuery去,你仍然可以做像'document.getElementById('some-id')。onclick = function(){/ * code * /}'這樣的事件監聽器。或者用現代瀏覽器的「addEventListener」(https://developer.mozilla.org/en/DOM/element.addEventListener)和IE的attachEvent(http://msdn.microsoft.com/en-us/library /ms536343(v=vs.85).aspx)。但是,是的,jQuery的確使它更簡單。 –

0

您可以將想要的數據作爲參數傳遞給enginepic函數。

onclick會是這個樣子

onclick='return enginepic(this, \''" . $row['value'] . "\') 

和你的函數聲明將看起來像

function enginepic(oLink, data){ 
. 
. 
. 
} 
+0

非常感謝,這將工作!,我會嘗試兩個答案。 – Lee

相關問題