как передать идентификатор в JavaScript динамически - PullRequest
0 голосов
/ 22 июня 2011
function jsarea3() { document.getElementById("Txtarea3").title = document.getElementById("Txtarea3").value; }
function jsarea4() { document.getElementById("Txtarea4").title = document.getElementById("Txtarea4").value; }
function jsarea5() { document.getElementById("Txtarea5").title = document.getElementById("Txtarea5").value; }

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

и как насчет кода, подобного приведенному ниже

$('#button1').focus(function () {
      $('#button1', window.parent.document).css("background-color", "#fcc63b"); 
    }
});

Ответы [ 5 ]

2 голосов
/ 22 июня 2011

если вы используете jquery, вы можете выбрать свои текстовые поля следующим образом:

$("textarea").focus(function(){
this.title = $(this).val();

});

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

2 голосов
/ 22 июня 2011

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

function jsarea(anId) { 
  var elem = document.getElementById(anId);
  elem.title = elem.value;
}

и вы можете позвонить с jsarea('Txtarea3');

Для второго кода это код jQuery, и кажется, что он меняет цвет фона кнопки с тем же идентификатором, что и тот, который получает фокус в родительском окне ( при использовании iframes )

1 голос
/ 22 июня 2011

Вы можете использовать одну функцию, которая принимает параметр, представляющий id элемента, на который вы хотите сослаться:

function jsarea(elementId) {
    document.getElementById(elementId).title = document.getElementById(elementId).value;
}

Вы можете назвать это как jsarea("Txtarea3");, если хотите воздействовать на элемент с помощью id "Txtarea3".

0 голосов
/ 22 июня 2011
function jsarea(number) { document.getElementById("Txtarea" + number).title = document.getElementById("Txtarea" + number).value; }
0 голосов
/ 22 июня 2011

Использовать параметр.

Кроме того, вы должны взглянуть на jQuery - он действительно может упростить DOM-манипулирующий код.

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