2013-12-10 4 views
0

У меня есть значение в поле атрибута td, но я не могу найти правильный способ проверить или подтвердить его значение.Как проверить имя поля td с jquery?

т.е.

<td class="edit" field="qcat_id" user_id="1">MyCat</td> 

Как я пытался:

function makeEditable(element) { 
    console.log (element); 
     if (element.field =="qcat_id"){ 
      alert('yes'); 
     } 
} 

Он никогда не покажет, да и console.log возвращает всю <td>...</td> как строку.

Update ====================== Ниже приведен код, в котором собираются параметр element

$(function() { 
    $(document).on("dblclick", "td.edit", function(){ makeEditable(this); }); 
}); 

Спасибо всем

+0

какой код вы используете для определения переменной 'element'? – Gotschi

+5

Вы должны использовать атрибуты 'data-' для этого – CodingIntrigue

+0

@RGraham Интересно, не могли бы вы объяснить причину этого? благодаря! – Ezeewei

ответ

6

с JQuery это должно быть просто следующим образом:

if (element.attr("field") =="qcat_id"){ 
    alert('yes'); 
} 

Это предполагает, что element является объектом JQuery, если вам не нужно, чтобы получить, что с помощью соответствующего переключателя, somethi нг как:

var element = $(".edit"); 

Here is a working example


Как предположил RGraham, было бы лучше использовать data-* атрибуты для хранения такого рода данных. Вы можете сделать это следующим образом:

<td class="edit" data-myid="qcat_id" user_id="1">MyCat</td> 

, которые можно получить с помощью следующих действий:

var myId = $(".edit").data("myid"); 

Here is an example using data attributes

+0

Я сталкиваюсь с ошибкой «Uncaught TypeError : Объект # не имеет данных метода. «Вы знаете, почему это произошло? – Ezeewei

+0

@Chen: Вместо 'makeEditable (this);' try' makeEditable ($ (this)); 'который преобразует элемент (' this') в объект JQuery, который имеет функцию 'data' – musefan

0
var element = $("td[user_id='1']"); 

if (element.attr("field") == "qcat_id"){ 
    alert('yes'); 
} 
0

Вы можете получить значение атрибута, как показано ниже.

$("td[user_id='1']").attr("field"); 

Вы должны префикс атрибутов с данными, так называемые пользовательские атрибуты. Кроме того, все атрибуты, предваряемые данными, игнорируются агентами пользователя.

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