Ответ 1
Используйте
querySelectorAll('img.classname')[0]
это возвращает первое изображение с классом, установленным в имя класса. Однако jQuery лучше!
$('img.classname')
У меня есть script
var firstImg = row.getElementsByTagName('img')[0];
и позже
if (x){ firstImg.src='/images/checked.png'; }
Я хотел бы определить, что img должен быть class='something'
(Получите первый img с class= "что-то" ) 10 раз заранее!
Используйте
querySelectorAll('img.classname')[0]
это возвращает первое изображение с классом, установленным в имя класса. Однако jQuery лучше!
$('img.classname')
Просто установите его...
firstImg.className += "something";
... или...
firstImg.classList.add("something");
Если вы можете обойтись без поддержки старых браузеров.
Дополнительная литература (отказ от ответственности: ссылка на мой собственный блог).
Если вы собираетесь получать элементы с определенным именем класса, вы можете использовать...
document.getElementsByClassName("something");
... или...
document.querySelectorAll(".something");
Имейте в виду, что getElementsByClassName()
не находится в <= IE8.
Вы можете использовать...
var getElementsByClassName(nodeList, className) {
var i, results = [];
for (i = 0; i < nodeList.length; i++) {
if ((" " + nodeList[i].className + " ").indexOf(" " + className + " ") > -1) {
results.push(nodeList[i]);
}
}
return results;
}
Конечно, это очень просто, если вы используете jQuery...
$(".something");
это выбирает первый img
с class= 'something':
var firstImg = $('img.something')[0];
Если вы не можете выбросить старые браузеры, вам понадобится цикл.
var imgs = row.getElementsByTagName('img'),
some_class = 'something',
i, first_img;
for (i = 0; i < imgs.length; i++) {
if ((' ' + imgs[i].className + ' ').indexOf(' ' + some_class + ' ') > -1) {
first_img = imgs[i];
break;
}
}