如何在jQuery中引用带括号的id

时间:2011-11-30 20:00:32

标签: javascript jquery

我是jQuery的新手,我需要获取ID为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 个答案:

答案 0 :(得分:9)

$( document.getElementById( "id[2][t]" ) ).change( function(){
  $( "#textpreview" ).text( this.value );
} );

答案 1 :(得分:4)

你可能会考虑修改你的ID(虽然我猜它们可能是自动生成的)。根据{{​​3}},您的ID对规范无效

答案 2 :(得分:0)

改为使用属性选择器:

var sel = $("[id='id[2][t]']");
sel.change(function() {
  $("#textpreview").val(sel.text());
});

答案 3 :(得分:0)

Plain Old 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));
}

啊......现在感觉不是更好吗?

答案 4 :(得分:-1)

您向前valtext。交换它们:

$('#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);
});

答案 5 :(得分:-4)

您可以尝试使用属性选择器而不是ID选择器。

$('[id="id[2][t]"]')