javascript - jQuery attr ('id' )正在返回 'undefined'

标签 javascript jquery html

html:

<button class="btn" id="1"></button>
<p></p>

jquery:

$('.btn').click(function() {
    var id=$(this).attr('id');
    $('p').html(id);
});

返回:

undefined

此问题已更正

最佳答案

$(这个)

在这种情况下,我建议您使用 $(this)

$('button').click(function(){
    console.log($(this).attr("id"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button class="btn" id="150">Click Me</button>

<小时/>

event.target

正如@aspiring_dev在他的回答中提到的,您可以在click函数中使用jQuery处理函数的事件参数:

$('.btn').click(function(event){
    console.log($(event.target).attr('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn" id="1">Button</button>
<p></p>

<小时/>

$(this)event.target 之间的不同

我在下面的例子中为div编写了一个点击事件。现在点击 Button 1Button 2 和黄色 div 来查看结果之间的不同。 event.target 等于子点击元素,但 this 始终等于 div .

$('div').click(function(event){
    var thisId = $(this).attr('id');
    var eventTargetId = $(event.target).attr('id');

    console.log('thisId » ' + thisId);

    if(eventTargetId.indexOf('mainDiv')<0)
       console.log('eventTargetId » ' + eventTargetId);
    else
       console.log('eventTargetId' +' = '+ 'thisId » ' + thisId );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mainDiv" style="padding:20px;background:#fdd800;border:1px solid orange;">
    <button class="btn1" id="btn1">Button 1</button>
    <button class="btn2" id="btn2">Button 2</button>
</div>

<小时/>

window.event.target

enter image description here

enter image description here

event.target is already available in IE9+. If you need to support IE6-8, then event.srcElement needs to be used.

$('button').click(function(){
    console.log($(window.event.target).attr("id"));
    console.log($(window.event.srcElement).attr("id"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button class="btn" id="150">Click Me</button>

关于javascript - jQuery attr ('id' )正在返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48475518/

相关文章:

javascript - 当我在 javascript 上使用它们时,为什么不能通过 css 设置标签样式?

jquery - 如何将滚动条添加到导航选项卡内容?

Jquery 移动样式问题

javascript - 通过单击框外部关闭模式

javascript - 单击 selenium 中 li 中存在的 span 元素

javascript - JqG​​rid 中组是否可以按字母顺序排序

javascript - 如何将标签移动到 D3 中的饼图外部

javascript - Moment JS 在某些 PC 上显示出 1 小时的差异

php - 延迟 AJAX 加载?

html - 隐藏 div 中的固定表格 td 宽度