Как добавить класс к данному элементу?

Была дыра - SDK Android Analytics использовался для отправки намерения сразу после установки - но это было закрыто (разумеется, много путаницы).

Но окончательный ответ, я считаю, здесь:

http://developer.android.com/about/versions/android-3.1.html#launchcontrols

Это, по-видимому, предполагает, что , с 3.1 Google принял решение о том, что приложения находятся в остановленном состоянии, пока пользователь явно не активирует их, например запуском приложения или размещением виджета.

Это означает, что стратегия прослушивания общей широковещательной передачи (т. е. для запуска вашего приложения тайком) тоже не будет работать.

1060
задан Edwin Pratt 9 May 2019 в 10:31
поделиться

7 ответов

Добавьте пространство плюс название Вашего нового класса к className свойство элемента. Во-первых, поместите id на элемент, таким образом, можно легко получить ссылку.

<div id="div1" class="someclass">
    <img ... id="image1" name="image1" />
</div>

Затем

var d = document.getElementById("div1");
d.className += " otherclass";

См. также element.className на MDN.

1782
ответ дан Fez Vrasta 9 May 2019 в 20:31
поделиться

В YUI, если Вы включаете yuidom, можно использовать

YAHOO.util.Dom.addClass('div1','className');

HTH

-11
ответ дан Alagu 9 May 2019 в 20:31
поделиться

во-первых, дайте отделению идентификатор. Затем вызовите функцию appendClass:

<script language="javascript">
  function appendClass(elementId, classToAppend){
    var oldClass = document.getElementById(elementId).getAttribute("class");
    if (oldClass.indexOf(classToAdd) == -1)
    {
      document.getElementById(elementId).setAttribute("class", classToAppend);
    }
}
</script>
-1
ответ дан tehvan 9 May 2019 в 20:31
поделиться

Только для разработки то, что сказали другие несколько классов CSS объединены в единственной строке, разграниченной пробелами. Таким образом, если бы Вы хотели к твердому коду это, то это было бы просто похоже на это:

<div class="someClass otherClass yetAnotherClass">
      <img ... id="image1" name="image1" />
</div>

Оттуда можно легко получить JavaScript, необходимый, чтобы добавить, что новый класс... просто добавляет пространство, сопровождаемое новым классом к свойству имени класса элемента. Зная это, можно также записать, что функция для удаления класса позже должна потребность возникать.

3
ответ дан Misko 9 May 2019 в 20:31
поделиться

найдите свой целевой элемент "d" однако, Вы желаете и затем:

d.className += ' additionalClass'; //note the space

можно перенести это более умными способами проверить предварительное существование и проверку на необходимые площади и т.д.

173
ответ дан Cœur 9 May 2019 в 20:31
поделиться
  • 1
    это было моим первым инстинктом также. I' d тогда рекомендуют продолжить прокладывание себе путь до touchesBegan & it' s братья и attributesAtIndex и проверка на NSLinkAttribute, если это существует. – dezinezync 14 March 2014 в 00:29

Принятие Вас делает больше, чем просто добавление этого класса (например, у Вас есть асинхронные запросы, и так далее продолжающиеся также), я рекомендовал бы библиотеку как Прототип или jQuery.

Это сделает примерно все, что необходимо будет сделать (включая это) очень простой.

Так скажем, у Вас есть jQuery на Вашей странице теперь, Вы могли использовать код как это для добавления имени класса к элементу (на загрузке, в этом случае):

$(document).ready( function() {
  $('#div1').addClass( 'some_other_class' );
} );

Выезд jQuery браузер API для другого материала.

19
ответ дан rfunduk 9 May 2019 в 20:31
поделиться

Когда работа, которую я делаю, не гарантирует пользование библиотекой, я использую эти две функции:

function addClass( classname, element ) {
    var cn = element.className;
    //test for existance
    if( cn.indexOf( classname ) != -1 ) {
        return;
    }
    //add a space if the element already has class
    if( cn != '' ) {
        classname = ' '+classname;
    }
    element.className = cn+classname;
}

function removeClass( classname, element ) {
    var cn = element.className;
    var rxp = new RegExp( "\\s?\\b"+classname+"\\b", "g" );
    cn = cn.replace( rxp, '' );
    element.className = cn;
}
21
ответ дан meouw 9 May 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: