2012-02-23 2 views
0

У меня есть один элемент "<a id="sample" jquery1234567="0">Testing</a>"Как удалить расширенный атрибут «jquery123456» от элемента

Я хочу, чтобы удалить последний атрибут (jquery1234567) из приведенного выше тега. Но атрибут «jquery1234567» будет генерироваться динамически.

+1

Это используется jQuery внутренне. Почему, по-вашему, вам нужно его удалить? –

+0

Чтобы ответить на часть «Почему, по-вашему, вам нужно ее удалить?» вопрос, этот динамически сгенерированный атрибут предотвращает выделение/выбор содержимого, содержащегося в границах элемента, которому он реализован в браузерах IE. Вопрос должен быть: «Почему JQuery необходимо реализовать его в IE?» –

ответ

-1

попробовать это

$("#sample").removeAttr('jquery1234567'); 
       (or) 
    var id=1234567; 
    $("#sample").removeAttr('jquery'+id); 

это не поможет для you..Pls добавить некоторые дополнительные описания с кодом ...

Привет друг, это поможет вам

 lastAttrIndex=($("#sample")[0].attributes.length)-1; 
     lastAttr=$("#sample")[0].attributes[lastAttrIndex].name; 
     $("#sample").removeAttr(lastAttr); 
+0

мы не можем найти точный атрибут. этот атрибут будет динамически создан, префикс с jquery – pradeep

+0

мы не можем определить var id = 1234567; это будет динамический контент. – pradeep

+0

То, что мне нужно, это удалить этот конкретный атрибут. Потому что он динамически генерируется в IE, но не в Firefox. – pradeep

0

попробуйте это

$.fn.getRegexAttr = function(regex, action) { 

    if(!this.length) return false; 

    if('remove' == action){ 

     var that = this; 
     $(this[0].attributes) 
      .filter(function(){ return regex.test(this.name); }) 
      .each(function(){ $(that).removeAttr(this.name); }); 


    }else if('fetch' == action){ 

    return $(this[0].attributes) 
      .filter(function(){ return regex.test(this.name); }) 
      .map(function(){ return $.trim(this.name); }) 
      .get(); 
    } 
} 

if($('#sample').getRegexAttr(/jquery[0-9]/, 'fetch')) alert($('#sample').getRegexAttr(/jquery[0-9]/, 'fetch').join(','));// To get the matched attributes

$('#sample').getRegexAttr(/jquery[0-9]/, 'remove');// To remove the matched attributes

вы также можете проверить в: http://jsfiddle.net/Nng8n/3/

2

Значение этого атрибута генерируется $.expando. Так что если вы хотите, чтобы удалить его, просто использовать:

 
$('#sample').removeAttr($.expando); 

Хотя я бы не рекомендовал удаление этого атрибута, так как он используется JQuery для отслеживания обработчиков событий, связанных с элементами DOM. Правильный способ повлиять на это поведение - это отвязать события из этого элемента с помощью jQuery.

+0

Это правильный путь, и, как замечает Ромен, это совсем не хорошая практика ... –

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