2010-07-13 2 views
0

У меня есть веб-страница HTML, полная тегов div и span, идентифицированных с классом, у которых есть много данных, которые мне нужны в другом формате. Мне было интересно, что будет лучшим способом сделать это с помощью javascript.Как получить данные HTML с javascript

Благодарим за помощь.

+0

Нужна дополнительная информация. Что вы хотите делать с данными? На что это похоже? У вас есть примеры? – Skilldrick

ответ

3

Самый быстрый способ? jQuery:

$(".myClass").each(function() { 
    // work with your data here 
}); 
+0

это может быть самый короткий путь, но не самый быстрый ... – galambalazs

+0

Зависит, если вы оптимизируете циклы процессора или циклы разработчиков :). Скорее всего, это самый быстрый способ реализовать, но вы правы, это может быть не самый эффективный способ. –

+0

Разве это так медленно? –

0

Более низкоуровневая, но должно быть намного быстрее (намного меньше накладные расходы):

var myelements = document.evaluate('//div[@class=myClass"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i = 0; i < myelements.snapshotLength; i++) { 
    var dataElement = myelements.snapshotItem(i); 
    // work with your data here 
} 

(ок, вам придется сделать это дважды (один раз для ДИВ и один раз для span), это больше кода и выглядит не так хорошо, но он все равно должен быть быстрее)

0

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

document.getElementByTagName("*") // This should select everything 

и проведите через них, чтобы определить собственное имя.

if (regex test == true) { 
    // you found an element that matches 
    // do what you will with it. 
} 

Если вы найдете элементы, которые вам нужны, то с ними вам нужно. Теперь вы обработали все элементы на странице и нашли элементы, соответствующие вашим критериям. Удачи.

+0

Я читал, что регулярное выражение и HTML - это запретный союз под небесами ... Так что это за реджикс? –

+0

Вам нужно будет использовать регулярное выражение для поиска через имя класса. Вы можете иметь несколько добавленных имен классов в одном и том же атрибуте. (ex class = "this orAnother"; if (className == "this") {} не будет работать, поскольку полная строка - это «this orAnother». – John