2015-06-09 3 views
0

У меня есть HTA, в котором я должен обновить innerHTML набора элементов с классом driveLetter. Прежде чем я это сделаю, я должен, очевидно, захватить массив всех элементов с этим классом.Ошибка при попытке получить все элементы с определенным классом

Я пробовал делать это с помощью JS, однако мне сообщили через ошибку, что оба метода ниже не поддерживаются (протестированы с IE9 и IE11). Использование этих функций в файле HTML работает, но это HTA.

var driveLetterInstances = document.getElementsByClassName("driveLetter"); 
var driveLetterInstances = document.querySelectorAll(".driveLetter"); 

Ошибки, генерируемые линиями выше -

Объект не поддерживает свойство или метод 'getElementsByClassName'
Объект не поддерживает свойство или метод 'querySelectorAll'

Я специально не должен использовать JS и был бы открыт для использования VBS для выполнения этой функции, но я не знаю, как начать с этого (или даже если это возможно).

+0

getElementsByClassName поддерживается IE9 + https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName – AmmarCSE

+0

Можете ли вы воспроизвести проблему в скрипке? – AmmarCSE

+0

Можете ли вы продемонстрировать свою попытку обновить 'innerHTML' с помощью' getElementByClassName' или 'querySelectorAll', и вы использовали цикл for для цикла через массив элементов? – NewToJS

ответ

2

Чтобы заменить innerHTML из набора элементов, которые вы всегда можете просто сделать что-то же просто, как одну строку, как это:

JQuery Решение 1:

// Find all the elements with the class name ".driveLetter" and replaces with "new content" 
 
$(".driveLetter").html("new content");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<!-- All elements with the same class name to be replaced with new content --> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div>

JQuery Решение 2:

// Loop through the classname 
 
$('.driveLetter').each(function(key, value) { 
 
    value.innerHTML = "New Content"; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<!-- All elements with the same class name to be replaced with new content --> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div> 
 
<div class="driveLetter"> Hello </div>

JQuery можно использовать, вызвав ее с веб-сайта JQuery или могут быть сохранены локально

Пример от получения из онлайн

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

Пример от получения от местного файл

<script src="js/jquery.min.js"></script> 

Объяснение querySelectorAll()

Я считаю, что IE8 поддерживает только в стандартном режиме querySelectorAll(). REF: Check this

Селекторы API определяется как часть Селекторы API спецификации и доступен только для веб-страниц, отображаемых в IE8 стандартном режиме.

Selectors API

шансы, что вы не устанавливать правильную декларацию DOCTYPE; вам нужно будет добавить его.

+0

Это Jquery Chris, а не javascript. –

+0

@ AlejandroTeixeiraMuñoz «Мне не нужно использовать JS», прочитайте его вопрос –

+0

В вашем ответе нет упоминания jQuery, и он не помечен в вопросе. Если вы планируете дать решение jQuery на вопрос, который его не имеет, я бы рекомендовал четко показать, что это использование jQuery и как нравится библиотека. – NewToJS