2016-08-08 3 views
1

У меня проблемы с написанием сценария.jQuery: как читать атрибут имени?

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

});

Предупреждение должно давать мне вывод, похожий на час: минута. Вместо этого я получаю это: hour: undefined. Я действительно не знаю, что делать: х

Вот 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, вы используете «данные-час» и «данные-минутные» для атрибутов вместо «ид» и «имя», как это сейчас.

Смежные вопросы