jQuery:如何读取name属性?

时间:2016-08-08 15:35:06

标签: javascript jquery

我编写脚本时没什么问题。

<div class="col-sm-3 kafelek wolny" name="15" id="9"></div>

警报应该给我输出看起来像小时:分钟。而不是我得到这个:小时:未定义。我真的不知道该怎么做:x

这是HTML代码(生成的PHP)

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item 
    android:state_selected="true"
    android:color="@android:color/white"/>
  <item 
    android:state_checked="true"
    android:color="@android:color/white"/>    
  <item
    android:color="@color/gray_text" />
</selector>

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

div元素在技术上 具有name属性。如果要存储一段数据,请将其存储为data-*属性。像这样:

<div class="col-sm-3 kafelek wolny" data-name="15" id="9"></div>

然后检索它:

var minuta = $(this).data('name');

答案 1 :(得分:1)

尝试使用.attr()功能,如下所示:

var minuta = $(this).attr('name');

这是有效的,因为在您的情况下name是属性而不是属性。这适用于您可能添加的任何随机属性,例如foo

更好的方法是添加data-name="something"等数据属性,并使用$(this).data(name)进行阅读。

工作示例:

&#13;
&#13;
$(function(){
   $(".wolny").click(function() {
      var godzina = this.id;
      var minuta = $(this).attr('name');
      alert(godzina + ":" + minuta);
   });
});  
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-sm-3 kafelek wolny" name="15" id="9"> Click me! </div>
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

请改为尝试:

$(function(){
  $(".wolny").click(function() {
    var godzina = $(this).attr('id');
    var minuta = $(this).attr('name');
    alert(godzina + ":" + minuta);
  });
});

但是,如果可能,我建议您为值使用数据属性。这是一个例子:

<div class="col-sm-3 kafelek wolny" data-hour="9" data-minute="15"></div>

然后,在JavaScript中,您使用“data-hour”和“data-minute”作为属性,而不是像现在这样使用“id”和“name”。