提醒个人属性值

时间:2013-06-27 19:21:00

标签: javascript jquery if-statement

我想通过它的name属性识别每个元素。每个元素都有相同的类,最终将包含不同的动态信息。

例如,我希望以下代码提醒单个元素的名称值:

HTML:

<p class="pexample" name="0">this is p #1</p>
<p class="pexample" name="1">this is p #2</p>
<p class="pexample" name="2">this is p #3</p>

jquery的:

$('p').on('click', function() {
    if ($('p').attr('name') !== undefined) {
        alert($('p').attr('name'));
    }
})

这是一个jsfiddle .. http://jsfiddle.net/XG7nd/1/

但此代码仅警告初始元素名称值。非常感谢帮助。

5 个答案:

答案 0 :(得分:5)

这应该做:

$('p').on('click', function() {
   var name = $(this).attr('name');// `this` here refers to the current p you clicked on
   if (name ) {
        alert(name); 
    }
})

在执行$('p').attr('name')时,这将始终为您提供集合中第一个项目的名称。

<强> Demo

答案 1 :(得分:0)

试试这个:

$(document).on('click','p', function() {
    alert($(this).attr('name'));
});

DEMO

答案 2 :(得分:0)

您想使用$(this)

$('p').on('click', function() {
    if($(this).attr('name') !== 'undefined') {
        alert($(this).attr('name'));
    }
});

答案 3 :(得分:0)

这是因为您在每次点击时都获得了第一个name的{​​{1}}属性。您需要指定事件源自的那个:

<p>

注意,jQuery选择器返回一个匹配元素数组。您必须使用$('p').on('click', function() { if ($(this).attr('name') !== undefined) { alert($(this).attr('name')); } }) 关键字来获取当前上下文中元素的句柄。

<强> FIDDLE

答案 4 :(得分:0)

说明

即使在p上也一直在寻找click元素,因此它会选择找到的第一个元素。

您的代码所说的内容:

点击p时:

  • 找到p元素并提醒其属性。

你真正想要的是什么:

点击p时:

  • 提醒点击元素的属性

解决方案

选择this的属性,即被点击的元素。

JSFiddle

的JavaScript

$('p').on('click', function() {
    if ($(this).attr('name') !== undefined) {
        alert($(this).attr('name'));
    }
})

详细了解this keyword