Как ссылаться на id с скобками в jQuery
я болезненно новичок в jQuery, и мне нужно захватить значение при изменении текстового поля ввода с идентификатором id[2][t]
и отобразить этот текст в div
для последующего стиля (также в стиле jQuery).
это код коробки ввода:
<input id="id[2][t]" name="id[2][t]" maxlength="20" type="text">
Это div, который я пытаюсь отобразить в:
<div id="textpreview"></div>
это то, что я пробовал, среди других вариантов без успеха:
$(document).ready(function() {
$('#id[2][t]').change(function() {
var txtval = $('#id[2][t]').text();
$("#textpreview").val(txtval);
});
});
Я знаю, что скобки являются проблемой, но они должны остаются по другим причинам.
какие идеи?
6 ответов
вы val
и text
назад. Поменять их местами:
$('#id\[2\]\[t\]').change(function() {
var txtval = $('#id\[2\]\[t\]').val();
$("#textpreview").text(txtval);
});
val
используется для получения значения текстового поля. text
чтобы установить текст в div
.
вы можете еще больше упростить код, используя this
вместо повторного запроса элемента.
$('#id\[2\]\[t\]').change(function() {
var txtval = this.value;
$("#textpreview").text(txtval);
});
$( document.getElementById( "id[2][t]" ) ).change( function(){
$( "#textpreview" ).text( this.value );
} );
вы можете рассмотреть возможность пересмотра ваших идентификаторов (хотя я предполагаю, что они могут быть автоматически сгенерированы). Согласно этот вопрос ваши идентификаторы недействительны против спецификации
вместо этого используйте селектор атрибутов:
var sel = $("[id='id[2][t]']");
sel.change(function() {
$("#textpreview").val(sel.text());
});
Обычный Старый JavaScript-Код:
var elem = document.getElementById('id[2][t]');
elem.onchange = function()
{
var elem = document.getElementById('textpreview');
elem.removeChild(elem.firstChild)
elem.appendChild(document.createTextNode(this.value));
}
Аааа... разве это не лучше?