2011-08-16 102 views
2

我有變量$ id在一個循環這是div id,所以div ID總是在變化。我知道JavaScript是這樣做的。php動態變量與jquery

<div id='$id' onclick='myfunction($id)' > 

如何使用jquery獲取變量我不知道他們的ID?

+2

這很大程度上取決於你的代碼和你正在嘗試做什麼,你可以從php生成jQuery並插入變量,你可以使用類,你可以使用數據屬性等,但這一切都取決於情況。 – Kokos

回答

0

如果你使用jQuery,那麼在onclick這樣的元素上使用事件處理程序屬性並不存在真正的原因(除了一些邊緣情況)。你應該做一切不顯眼的事情。例如:

HTML: <div id="<?php echo $id; ?>" class="some_class">

JS:

$.ready(function(){ 
    $('.some_class').click(function(){ 
    myFunction($(this).attr('id')); 
    }); 
}); 

或者可以說你的id符合像my_function_10一定的格式,那麼你可以使用attribute selectors

<div id="my_function_<?php echo $id; ?>">

然後你可以這樣做:

$.ready(function(){ 
    $('[id^="my_function_"]').click(function(){ 
    myFunction($(this).attr('id')); 
    }); 
}); 
+0

請解釋這一點 - '[id^='my_function_「]' – ziggy

+0

這樣就可以讓你搜索以'my_function_'開頭的id,所以參考你的其他問題,你可以使用'substr'如:'var id = $( '[ID^= 「創建my_function _」]')ATTR( 'ID')SUBSTR(13);' – prodigitalson

2

使用班級。

<div id='$id' class="myDiv" onclick='myfunction($id)' > 

然後,你可以在jQuery的做到這一點:

$(".myDiv").each(function() { 
    // write code here. 
}); 
1

您應該指定一個類來這些div,並通過所有與類元素的使用jQuery循環:

$(".your_div_class").each(function() { ... }); 

此外,您需要輸出適當的PHP變量:

<div id="<?php echo $id; ?>" onclick="myfunction('<?php echo $id; ?>')" > 
0

如果您確實需要使用內聯事件處理程序,則始終可以使用onclick="myfunction(this.id);"來傳遞該ID。或者更好,onclick="myfunction.call(this);"所以this指向函數內的元素。

但是既然你有jQuery可用,沒有理由只寫一次onsomething