Выберите элемент по и имя класса в JavaScript - PullRequest
1 голос
/ 08 октября 2010

У меня есть событие onChange, которому необходимо динамически выбрать идентификатор, а затем добавить предустановленное имя класса для передачи в функцию.

onChange = "show(document.getElementById(this.value). {select a class here? } );"

Эквивалент в jquery

$('#'+this.value+'.myclassname').function();

Так как же выбрать идентификатор + имя класса в JavaScript? Я знаю, что я плотный.

Ответы [ 2 ]

4 голосов
/ 08 октября 2010

Вам нужно использовать имя класса?Идентификаторы должны быть уникальными.

var element = document.getElementById('myId');

Или, скажем, element является родителем, и вы хотите, чтобы у вас был ребенок с классом

var elements = element.getElementsByTagName('*');

var newElements = [];

for (var i = 0, length = elements.length; i < length; i++) {

    if ((' ' + elements[i].className + ' ').indexOf(' yourClassName ') > -1) {
         newElements.push(elements[i]);
    }
}

Этот код в основном проходит через всех дочерних элементов и использует indexOf() для проверки наличия вашего класса.Если он находит его, он помещает его в новый массив.

0 голосов
/ 08 октября 2010

С http://www.anyexample.com/webdev/javascript/javascript_getelementsbyclass_function.xml

function getElementsByClass( searchClass, domNode, tagName) { 
    if (domNode == null) domNode = document;
    if (tagName == null) tagName = '*';
    var el = new Array();
    var tags = domNode.getElementsByTagName(tagName);
    var tcl = " "+searchClass+" ";
    for(i=0,j=0; i<tags.length; i++) { 
        var test = " " + tags[i].className + " ";
        if (test.indexOf(tcl) != -1) 
            el[j++] = tags[i];
    } 
    return el;
} 
getElementsByClass('center', document.getElementById('content'))
...