jQuery - $('#'+ id)的用法

时间:2013-12-10 22:12:07

标签: jquery

我刚遇到$('#' + id).empty().hide();,它重置了jquery的一些代码块。 我不理解将id#连接而不是#('#something')的目的 只需将整个ID引用为id

我想这是有充分理由的,所以我很想知道 你的两分钱将不胜感激。

修改

下面是我正在谈论的演示。 我应该说我理解id这里用作变量,但我没有得到的是这个引用var demobox = $('#' + id); var fields = $('#jq4u-demo-form').serializeArray(), fieldDetails; demobox.empty(); $.each(fields, function (i, field) { demobox.append(field.name + '=' + field.value + '<br/>'); }); 的值。

{{1}}

2 个答案:

答案 0 :(得分:1)

这样写是因为元素的名称存储在变量中。

如果你对选择器进行硬编码,你会写:

$('#something').empty().hide();

但是,假设元素的名称存储在名为#hide_this_one的文本字段中。假设您获取该文本字段的值并将其分配给名为id的变量。现在,变量id的名称为控件something

var id = $('#hide_this_one').val();
$('#'+id).empty().hide();

将清空并隐藏控件#something


回答您的其他问题:

您可以知道此处引用的控件:

var demobox = $('#' + id);

添加此附加代码(仅用于测试):

var demobox = $('#' + id);
alert(id);

答案 1 :(得分:0)

  

我不明白将id#联系在一起的目的,而不仅仅是将整个ID引用为#('#something')

在这种情况下的目的是该选择器的something部分根据id的值进行更改,允许您通过简单地传递不同的ID来重复使用它。