TL;博士
$(".href").each(function()
{
console.log($(this).attr("data-id"));
});
說明
你的代碼運行和工作,只是你不覺得它的工作方式。
讓我們假設$length
等於2
(其實並不重要):
$length = 2;
for($x = 0; $x < $length; $x++)
{
echo "<button ><a class='href' data-id='$x'>Text</a></button>";
}
它將產生兩個按鈕,一個id爲0
,一個ID爲1
:
<button ><a class='href' data-id='0'>Text</a></button>
<button ><a class='href' data-id='1'>Text</a></button>
您正試圖獲取像這樣的值:
$y = $('.href').attr('data-id');
然而,它確實如中所解釋的only fetches the data-id matching the first element which has class 'href'。
如果你希望獲得當前點擊的按鈕id
那麼你可以做這樣的:
$('.href').on("click", function()
{
var clickedId = $(this).attr('data-id');
});
(聽點擊與href
類的元素事件)
Working demo
如果你想獲得所有可用的ID,那麼你可以通過其中的每一個,並獲得ID:
<p id="output"></p>
$(".href").each(function()
{
var currentId = $(this).attr("data-id");
$("#output").append("Button id: " + currentId + "<br />");
});
(通過其具有類href
元素的每個實例解析)
Working demo
你不是應該使用串聯爲字符串?即:data-id ='「。$ x。」'> .......? – remixdesign 2014-10-20 20:48:20
@remixdesign不需要PHP。 – Jonast92 2014-10-20 20:48:56
PHP將解析雙引號內的變量,@remixdesign – smerny 2014-10-20 20:49:40