Найдите маркировку HTML связанной с данным входом

100
задан Joel Coehoorn 10 April 2014 в 16:49
поделиться

5 ответов

Во-первых, отсканируйте страницу для маркировок и присвойте ссылку на маркировку от фактического элемента формы:

var labels = document.getElementsByTagName('LABEL');
for (var i = 0; i < labels.length; i++) {
    if (labels[i].htmlFor != '') {
         var elem = document.getElementById(labels[i].htmlFor);
         if (elem)
            elem.label = labels[i];         
    }
}

Затем можно просто пойти:

document.getElementById('MyFormElem').label.innerHTML = 'Look ma this works!';

Никакая потребность в массиве поиска :)

81
ответ дан Dan Herbert 24 November 2019 в 04:48
поделиться

с jQuery Вы могли сделать что-то как

var nameOfLabel = someInput.attr('id');
var label = $("label[for='" + nameOfLabel + "']");
8
ответ дан Michael 24 November 2019 в 04:48
поделиться

Вы попытались использовать document.getElementbyID ('идентификатор'), где идентификатор является идентификатором маркировки или является ситуацией, что Вы не знаете, какой Вы ищете

0
ответ дан Josh Mein 24 November 2019 в 04:48
поделиться

Ранее...

var labels = document.getElementsByTagName("LABEL"),
    lookup = {},
    i, label;

for (i = 0; i < labels.length; i++) {
    label = labels[i];
    if (document.getElementById(label.htmlFor)) {
        lookup[label.htmlFor] = label;
    }
}

Позже...

var myLabel = lookup[myInput.id];

Придирчивый комментарий: Да, можно также сделать это с JQuery.:-)

14
ответ дан Tomalak 24 November 2019 в 04:48
поделиться

При использовании jQuery, можно сделать что-то вроде этого

$('label[for="foo"]').hide ();

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

function findLableForControl(el) {
   var idVal = el.id;
   labels = document.getElementsByTagName('label');
   for( var i = 0; i < labels.length; i++ ) {
      if (labels[i].htmlFor == idVal)
           return labels[i];
   }
}
100
ответ дан Mouna Cheikhna 24 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: