我无法使用jquery获取按钮的name属性

时间:2018-03-14 04:07:28

标签: jquery

我有很多具有相同ID但名称不同的按钮。但我无法在jquery中获取点击按钮的名称属性值。我在StackOverflow中搜索并得到了很多关于我的问题的建议。但是,我仍然无法解决我的问题。任何人,请帮忙。

我只在这里提供jquery代码:



<script>
$(document).click('#grant',function(){
	$name=$(this).attr("name");
	alert($name);
});
</script>
&#13;
&#13;
&#13;

这里grant是按钮的id。我想只获取点击按钮的名称attr。我试过this运算符。但是警告框显示undefined。 需要帮忙。提前致谢

3 个答案:

答案 0 :(得分:0)

您对this的使用感到困惑。

您应该使用的代码是:

for(var i = 0; i < 100; i++) {
    $('#grant' + i).click(function() {
         alert($(this).attr('name'));
    });
}

此处this指的是#grant0#grant99元素。

此外,在1个HTML文档中,ID应该是唯一的,并且只能使用一次。请为每个不同的元素分配不同的ID。

答案 1 :(得分:0)

不要对所有元素使用相同的id,在这种情况下使用class。 id use用于唯一标识元素,如名称所示。具有相同id的多个元素不是一个好习惯

$(document).ready(function(){
  $(".btn").click(function(){
    var name = $(this).attr("name");
    alert(name);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button name="button1" class="btn">Button1</button>
<button name="button2" class="btn">Button2</button>
<button name="button3" class="btn">Button3</button>

答案 2 :(得分:0)

您不能拥有多个具有相同ID的元素。你必须使用课程。

&#13;
&#13;
$(function(){
	$(".grant").click(function(){
		$name=$(this).attr("name");
		console.log($name);
	});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="grant anotherclass" name="1">Click Me!</button>
<button type="button" class="grant anotherclass" name="2">Click Me!</button>
<button type="button" class="grant anotherclass" name="3">Click Me!</button>
<button type="button" class="grant anotherclass" name="4">Click Me!</button>
&#13;
&#13;
&#13;

如果动态添加按钮,则可以使用on

$("body").on('click', '.grant', function( event ) {
    $name=$(this).attr("name");
    alert($name);
});