javascript
  • css
  • 2015-11-09 3 views 1 likes 
    1

    Скажем, у меня есть этот HTML-элемент:Как изменить атрибут элемента с недопустимыми символами?

    <div id="n1" nameok="hello"> 
    

    Если я хочу, чтобы изменить атрибут nameok с помощью JS, он очень прост:

    var x = document.getElementById("n1"); 
    x1.nameok = 'new value'; 
    

    Но, допустим, у меня есть еще один элемент, как это :

    <div id="n2" name-not-ok="hello"> 
    

    Затем, вторая линия генерации ошибки:

    var x = document.getElementById("n2"); 
    x2.name-not-ok = 'new value'; 
    

    Я предполагаю, что проблема заключается в «-», который очень вероятно, не допускается, так что я пытался что-то вроде

    x2."name-not-ok" = 'new value'; 
    x2("name-not-ok") = 'new value'; 
    

    Но это не сработало. Я пытался в Google, но я не смог найти правильный синтаксис в случае «запрещенных» символов в имени атрибута.

    Конечно, я могу изменить соответствующий CSS, чтобы избежать использования атрибутов с помощью «-», а затем изменить весь мой HTML-код ... Но в первую очередь этот атрибут является частью «пакета», который я не писал , а во-вторых ... Там должен быть путь;)

    +2

    'x2.setAttribute ('name-not-ok', 'new val');' – Tushar

    +0

    Спасибо! Пожалуйста, опубликуйте его как ответ, чтобы я мог его принять :) – ZioBit

    ответ

    2

    используйте setAttribute как последуйте

    x2.setAttribute('name-not-ok', 'new val'); 
    

    Я бы рекомендовал использовать data-* атрибуты для пользовательских атрибутов.

    x2.dataset.nameOk = 'new val'; 
    
    +0

    Как уже говорилось, я не писал их ... Собственно, это контрольные панели Bootstrap: http://www.w3schools.com/bootstrap/bootstrap_progressbars. asp – ZioBit

    +0

    @ ZioBit Это означает, что вы включили jQuery. Если да, то используйте '$ ('# n2'). Attr ('name-not-ok', 'new val');' – Tushar

    +0

    Хорошо, спасибо за новый совет. Я действительно новичок в jQuery, поэтому ... Любая помощь приветствуется :) Но есть ли какая-то конкретная причина «использовать» jQuery для этого назначения, или это сохранить 2 байта? :) – ZioBit

    -1

    Try:

    x2 [ "имя-не-ОК"] = 'новое значение';

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