Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取被单击对象的名称<;a>;标签_Javascript_Jquery - Fatal编程技术网

Javascript 如何获取被单击对象的名称<;a>;标签

Javascript 如何获取被单击对象的名称<;a>;标签,javascript,jquery,Javascript,Jquery,这是我的HTML代码: <div class="span4"> <div class="hero-unit" style="padding:10px 10px 10px 10px"> <div class="accordion" id="accordion2"> <div class="accordion-group"> <div class="accordion-heading">

这是我的HTML代码:

<div class="span4">
<div class="hero-unit" style="padding:10px 10px 10px 10px">
    <div class="accordion" id="accordion2">
        <div class="accordion-group">
            <div class="accordion-heading">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
                North Delhi
                </a>
            </div>
            <div style="height: 0px;" id="collapseOne" class="accordion-body collapse">
                <div class="accordion-inner">
                    <ol>
                        <li><a id='link' href="#" name="Some name1 ">Some link1</a> </li>
                        <li><a id='link' href="#" name="Some name2">Some link2</a> </li>
                    </ol>
                </div>
            </div>
        </div>
    </div>
我的HTML代码有几个带有多个链接的手风琴内部div。我想获取单击链接的name属性。此代码提醒我未定义检查我的jQuery代码,请告诉我我做错了什么


我是jquery新手,请提供帮助。

使用引号作为属性名称

$(document).ready(function() {
$('#link').click(function() {
    var n = $(this).attr("name");   //alerts undefined <- quotes here
    alert(n);
    $('#results').html('&nbsp;').load('/donate/?n=' + n);
});
});
$(文档).ready(函数(){
$(“#链接”)。单击(函数(){

var n=$(this).attr(“name”);//警报未定义问题在于您没有将
name
放在引号中,因此Javascript查找名为
name
的变量,但没有找到。您应该将其改为:

var n = $(this).attr("name");

除此之外,您的
id
s不是唯一的。这是非法的,并且实际上保证将来会给您带来问题。按照@nbrooks的建议,将过度使用的
id
更改为

您的两个链接都具有相同的
id
属性,这是HTML规范要求的唯一属性。jQuery只返回一个元素。请改用类属性/选择器组合:

<li><a class='link' href="#" name="Some name1 ">Some link1</a> </li>
<li><a class='link' href="#" name="Some name2">Some link2</a> </li>

$(".link").click(function() {
     var n1 = $(this).attr("name");  //Name should be a string here
     var n2 = this.name  //name should be a variable here
});
  • $(“.link”)。单击(函数(){ var n1=$(this).attr(“name”);//此处的name应为字符串 var n2=this.name//name应该是此处的变量 });
    首先将您的li更改为这些

    <li><a class='link' href="#" name="Some name1 ">Some link1</a> </li>
    <li><a class='link' href="#" name="Some name2">Some link2</a> </li>
    

    使用.而不是#,并且你的集合

    html id属性必须是唯一的。如果你想有几个带有“link”的元素,请将其作为一个类。
    class=“link”
    而不是
    id=“link”
    @nbrooks:ok,所以我将其设置为class=“link”并在我的jQuery代码中添加了.link…但它仍然返回未定义的。请参见下面的答案。
    name
    应该用引号括起来,因为它不是变量。
    $('#link').click(function() {
       var n = $(this).attr("name"); 
    });
    
    $(document).ready(function() {
    $('.link').click(function() {
    var n = $(this).attr('name');   //alerts undefined
    alert(n);
    $('#results').html('&nbsp;').load('/donate/?n=' + n);
    });
    });
    
    $('#link').click(function() {
       var n = $(this).attr("name"); 
    });