2015-08-03 59 views
2

我想在单击按钮后使用id在我的html文件中获取两个<p>元素的名称。但在我的代码中,当我点击按钮时,它只输出“打印”。我怎样才能做到这一点?如何在JavaScript中使用ID获取值多个标签?

这是我的HTML代码:

<p id="name" name="print">hey</p>  
<p id="name" name="this">hey</p>  
<button id="btn11">test11</button> 

这是我的javascript代码:

$("#btn11").click(function(){ 
    alert($("#name").attr("name")); 
}); 
+3

Id在HTML中是唯一的 –

+7

使用'class'而不是'id' – Sapikelio

回答

4

ID必须是唯一的HTML。相反,ID采用类这样

的HTML:

<p class="name" name="print">hey</p>  
<p class="name" name="this">hey</p>  
<button id="btn11">test11</button> 

的jQuery:

$("#btn11").click(function(){ 
    var getName = $(".name").map(function() { 
     return $(this).attr("name"); 
    }).get(); 
    console.log(getName); 
}); 
+0

谢谢!它确实有帮助。 –

+0

@JemuelElimanco - 很高兴帮助:-) –

1

在HTML,则不应使用dupicate的ID,还是要在这里使用相同的代码其中工程如你预期

$("#btn11").click(function() { 
    $("p[id='name']").each(function (e) { 
     alert($(this).attr("name")); 
    }); 
}); 

DEMO HERE

4

使用类而不是ID和

<p class= "name" name = "print">hey</p> 

<p class= "name" name = "this">hey/p> 

<button id="btn11">test11</button> 

$("#btn11").click(function(){ 
    $('.name').each(function() { 
    alert($(this).attr('name')); 
    }); 
}); 
2

id应该在HTML独一无二的。您应该使用class属性:

<p class="name" data-name="print">hey</p> 
<p class="name" data-name="this">hey</p> 
<button id="btn11">test11</button> 

$("#btn11").click(function(){ 
    $.each($(".name"), function(i, v) { 
     console.log($(v).data("name")) 
    }) 
}); 

而且,name不是<p>标签的属性。请参阅Element.name

0

id应该是唯一的。不建议在html文档中使用重复的id。 仍然如果你想继续你的旧代码。

你也可以做这样的

document.querySelectorAll('p[id=name]')[0] 
0

非常不好的做法。

两个单独的元素不应包含相同的ID和名称。应用类名并通过类名进行迭代(使用每个类或地图)。有很多方法可以做到这一点(我已经在这里看到一些可靠的例子)。然后,使用data属性为每个元素存储唯一的数据。

相关问题