将参数从html传递给jquery

use*_*807 0 html javascript php jquery

我试图将一个参数从HTML传递给jQuery,但是我只得到一种类型的答案,即使我在我的php文件中使用for循环如下:

for ($x = 0; $x < $length; $x++) {
  echo "<button ><a class='href' data-id='$x'>Text</a></button>";
}
Run Code Online (Sandbox Code Playgroud)

我像这样检索它:

$y = $('.href').attr('data-id');
Run Code Online (Sandbox Code Playgroud)

有什么我不对的吗?

gue*_*est 5

来自http://api.jquery.com/attr/:

获取集合中第一个元素的属性值

(重点补充)

也就是说,即使$('.href')匹配$length元素,它也只会给你0.

同样来自文档,

要单独获取每个元素的值,请使用循环结构,例如jQuery .each().map()方法.

(其他人都在发布代码示例,所以...)

var y = $('.href').map(function (index, element) {
    return $(element).attr('data-id');
}).get();
Run Code Online (Sandbox Code Playgroud)