Выберите метку из документа, не зная идентификатор - PullRequest
1 голос
/ 03 декабря 2010

Я работал над модификацией iframe, используя javascript.Iframe содержит эту форму

Что я хочу сделать, это получить информацию с метки;однако у него нет идентификатора.Могу ли я получить javascript для получения кнопки ввода по идентификатору и проанализировать присвоенную ей метку?

Ответы [ 3 ]

4 голосов
/ 03 декабря 2010

Вы можете просмотреть все элементы label и найти тот, чей атрибут for соответствует вашему идентификатору кнопки:

var labels = document.getElementsByTagName('label');
var label = null;
var buttonID = '...';
for (var i = 0; i < labels.length; i++)
  if (labels[i].htmlFor == buttonID) {
    label = labels[i];
    break;
  }
// "label" now refers to the label you're looking for
2 голосов
/ 03 декабря 2010

Путь Касабланки - лучший способ, если вы знаете только идентификатор кнопки.

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

var label = document.getElementById('myDiv').getElementsByTagName('label')[0];

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

var label = document.getElementById('button').parentNode.getelementsByTagName('label')[0];

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

0 голосов
/ 03 декабря 2010

Я настоятельно рекомендую исследовать jQuery для такого рода манипуляций.Я уверен, что вы, вероятно, не хотите вводить целую среду Javascript для решения этой маленькой проблемы, но если вы изучите ее, вы обнаружите, что программирование на Javascript становится намного проще.

Предполагая, что ответ @ casablanca ответитправильно, вы можете сделать то же самое в jQuery с помощью следующего кода:

var label = $('label[for="..."]').get(0);

(или что-то в этом роде. Мой синтаксис может быть отключен.: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...