Получение элементов с использованием Javascript - PullRequest
1 голос
/ 13 февраля 2009

У меня есть набор входных элементов, которые имеют определенную подстроку в своих идентификаторах. Используя javascript, есть ли способ получить эти элементы в виде массива? Я не знаю полного идентификатора - только подстрока.

Разве это проще, если я использую JQuery?

Ответы [ 5 ]

1 голос
/ 13 февраля 2009

Как насчет ответа не-jQuery ... хммм!?

function getAndFilter(elems, filter) {
    var length = elems.length,
        ret = [];
    while (length--) {
        if(filter(elems[length])) {
            ret[ret.length] = elems[length];
        }
    }
    return ret;
}

getAndFilter(document.getElementsByTagName('input'), function(input) {
    // Your custom logic/rule goes here:
    return input.id.substr(0,5) === 'HELLO';
});
0 голосов
/ 13 февраля 2009

API селекторов работает.

document.querySelectorAll("input[id*='yoursubstring']")

Работает в IE8 +, WebKit (Google Chrome, Safari), похоже, будет работать в следующих Opera и FF.

0 голосов
/ 13 февраля 2009

проще, если вы используете jquery, в противном случае вам придется начинать с тела документа, получать его дочерние элементы, анализировать их идентификаторы, выбирать подходящие элементы и идти вниз по дереву.

0 голосов
/ 13 февраля 2009

JQuery, безусловно, хороший путь.

Проверьте фильтры атрибутов на jquery.com

0 голосов
/ 13 февраля 2009

Довольно просто с JQuery. Пример:

$("li[id^='comment']") 

Выберите все "li", где id начинается с "comment".

EDIT

Чтобы получить их в массив:

var myArray = new Array;

$("li[id^='comment']").each(function() {
    var thisId = $(this).attr("id");
    myArray.push(thisId);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...