Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена класса элемента (https://javascript.ru/forum/dom-window/41641-zamena-klassa-ehlementa.html)

razorg1991 23.09.2013 15:10

Замена класса элемента
 
Пытаюсь нацарапать скрипт, который бы искал элемент с определенным классом и заменял его на другой.
Хотелось бы конечно на чистом js. Вот что получилось у меня:

document.getElementsByClassName("vm-button-correct").className += "btn btn-success";
document.getElementsByClassName('vm-button-correct').className.replace(/\bvm-button-correct\b/,'');


Но что-то не работает ((( Вынес скрипт в отдельный файл и подключил в главном файле сайта.
Что я сделал не так?
Да и еще такое уточнение: у нужного мне элемента нет id только класс и добраться до него я не могу (сайт на cms joomla, пишу свой шаблон и до некоторых файлов нет доступа из шаблона)
Помогите пжлст довести код до ума

pumaone 23.09.2013 15:43

метод не кроссбраузерен getElementsByClassName (getElementByClass).
Смотрите здесь: http://javascript.ru/unsorted/top-10...lementsbyclass

razorg1991 23.09.2013 15:46

Цитата:

Сообщение от pumaone

Страница не найдена

ruslan_mart 23.09.2013 15:53

document.getElementsByClassName("vm-button-correct")[0].className = "btn btn-success";

pumaone 23.09.2013 16:00

еще разок)
http_://javascript.ru/unsorted/top-10-functions#8-getelementsbyclass
уберите пробел, должно работать

razorg1991 23.09.2013 16:56

Цитата:

Сообщение от Ruslan_xDD
document.getElementsByClassName("vm-button-correct")[0].className = "btn btn-success";

Не работает (((

razorg1991 23.09.2013 16:58

Цитата:

Сообщение от pumaone (Сообщение 273321)
http_://javascript.ru/unsorted/top-10-functions#8-getelementsbyclass

Честно я в js не очень поэтому мне тяжеловато, вот вроде бы то что мне нужно

function addClass(o, c){
    var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g")
    if (re.test(o.className)) return
    o.className = (o.className + " " + c).replace(/\s+/g, " ").replace(/(^ | $)/g, "")
}
 
function removeClass(o, c){
    var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g")
    o.className = o.className.replace(re, "$1").replace(/\s+/g, " ").replace(/(^ | $)/g, "")
}


Только я не пойму что мне где поменять

pumaone 23.09.2013 18:06

тогда подключи jquery (<script src="http_://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>), и попробуй использовать вот это: (http_://www.w3schools.com/jquery/html_removeclass.asp) \ не забыть о пробелах в линках

razorg1991 23.09.2013 21:08

Цитата:

Сообщение от pumaone
тогда подключи jquery

Не не - вот тут у меня труба вообще ((( У меня главный скрипт сайта (инет-магазин) написан на старючей версии jquery 1.6.1 (хотя версия скрипта самая новая) и он ни в какую не хочет работать с версиями jquery старше 1.6.1. А переписывать скрипт магазина вообще не вариант, да и не нужно это, потому как с обновлениями скрипта все будет слетать
Поэтому и пытаюсь изворачиваться чистым js

Никто не поможет допилить верхний скрипт?


Часовой пояс GMT +3, время: 23:53.