2016-08-08 106 views
1

寫我的腳本的問題很少。jQuery:如何讀取名稱屬性?

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

});

警報應該給我輸出看起來像這樣的小時:分鐘。而不是我得到這個:小時:未定義。我真的不知道該怎麼做:X

這裏的HTML代碼(生成的PHP)

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

感謝的任何幫助。

+0

名稱不是屬性,而是它的一個屬性。 – evolutionxbox

回答

1

嘗試使用.attr()功能,而不是像這樣:

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

這工作,因爲name你的情況是一個屬性,而不是一個屬性。這將適用於您可能添加的任何隨機屬性,如foo

更好的方法是添加數據屬性,如data-name="something",並用$(this).data(name)讀取。

工作實施例:

$(function(){ 
 
    $(".wolny").click(function() { 
 
     var godzina = this.id; 
 
     var minuta = $(this).attr('name'); 
 
     alert(godzina + ":" + minuta); 
 
    }); 
 
});
<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>

+0

它的工作。非常感謝你^^。我會盡快將您的問題標記爲答案 – Ethris

+0

不客氣! – Shaunak

2

div元件在技術上不一個name屬性。如果要存儲一段數據,請將其存儲爲data-*屬性。事情是這樣的:

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

然後檢索它是這樣:

var minuta = $(this).data('name'); 
-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中,你使用「數據小時」和「數據分鐘」的屬性,而不是「id」和「名」喜歡它就是現在。