将jquery变量名设置为DIV id name

将jquery变量名设置为DIV id name,jquery,html,Jquery,Html,我想创建一个标志变量,其名称与单击的div id相同…() 以下是我试图做的。。。 JQuery: HTML: 这里有一些文字 但它不起作用,请帮帮我…这是一个例子 在fiddle中(请参见var ccc的值没有变化)正确的形式是: $(this).attr(id, "12") 在非html5上下文中,将数字指定为ID可能会有问题 但是,以某种方式使用div值作为变量名的唯一方法是以下方式(您可以创建自定义范围的var x={},而不是窗口): 问题:您不知道值的名称,因此必须始终以这种方式

我想创建一个标志变量,其名称与单击的div id相同…()

以下是我试图做的。。。 JQuery:

HTML:

这里有一些文字
但它不起作用,请帮帮我…这是一个例子


在fiddle中(请参见
var ccc
的值没有变化)

正确的形式是:

$(this).attr(id, "12")
在非html5上下文中,将数字指定为ID可能会有问题

但是,以某种方式使用div值作为变量名的唯一方法是以下方式(您可以创建自定义范围的
var x={}
,而不是窗口):

问题:您不知道值的名称,因此必须始终以这种方式处理变量。对于您最初的问题,可能有更好的解决方案

如果要将信息存储到特定的html元素,最好使用该方法

12
现在存储为“直接在html元素上”。这就是你想要的吗

有点清楚你想做什么,但根本不清楚你为什么要这么做。变量应该是不同的。。。但他们的名字不应该出现。(事实上,这出现了惊人的次数,因此我真的想知道这样做的动力来自何方。)

$('#ccc').on('click',function(){
   window[this.id] = 12;
    alert(window[this.id]);
});
这不是一个变量名:

$(this).attr(id)
它是对
$
函数的调用,该函数返回一个jQuery对象,然后是对该对象的
attr
函数的调用,该函数返回一个值。(或者应该,取决于此上下文中的
id
是什么。如果您指的是
'id'
,则它应该返回匹配元素上
id
属性的字符串值。)

这应该有效,因为它应该提醒
id
属性的字符串值:

alert($(this).attr(id));
但问题是,通过使用函数调用的返回值作为变量名,您想做什么?我知道JavaScript不是一种静态语言,但它不是动态的


变量名必须是静态的,否则任何其他代码如何知道如何使用它?无疑有一个更好的结构来实现您希望实现的功能。

您不必使用变量

有两种方法

<div id="abc">some text goes here</div>

//mixing jquery and pure javascript
$('#ccc').on('click',function(){
  alert(this.id);
});

//using only Jquery
 $('#ccc').on('click',function(){
  alert($(this).attr('id'));
});
这里有一些文字
//混合jquery和纯javascript
$('#ccc')。在('click',function()上{
警报(this.id);
});
//仅使用Jquery
$('#ccc')。在('click',function()上{
警报($(this.attr('id'));
});

问题不是询问如何设置属性值。问题是如何使用属性值作为变量名。@christoph我尝试了你的方法,但值没有改变…[]@Bharat正确的方法是:,但这没有多大意义,最好使用data方法,直接保存html元素上的值:问题是问如何使用id值作为变量名,不是如何将其存储在具有固定名称的变量中。您已将值设置为id,我想将变量的名称设置为id可能这是您正在寻找的,或者可能不是,但您的初始问题非常模糊,这没关系@Quentin,但您能提供OP正在寻找的答案吗?我还是不明白it@BharatSoni:不,他没有将值设置为
id
。他将
窗口
集合中的索引器设置为
id
的值,该值与动态变量名的值最接近。但是这将很难使用,因为如果不重新查询DOM,您的其余代码将不知道索引器是什么。从所有错误的答案判断,我认为您的问题还不清楚……您的真实代码是否缺少
id
周围的引号?变量几乎总是错误的方法来做一些事情。使用
.data()
将信息存储在元素本身中,或者将id用作对象中的属性。实际上,我已经定义了变量,根据单击的div,我希望将值更改为0和1。。。还有其他想法吗。。[这是小提琴,请参见这里的
var ccc
value s not change…@BharatSoni:如果您已经定义了变量,那么为什么不使用这些变量呢?同样,这里的预期功能的总体情况非常不清楚,但肯定有一个结构可以满足需要。您可以将您的值存储在数组中s、 对象、JSON结构、DOM元素本身等等。@BharatSoni:你是说at吗?在那段代码中没有
var ccc
。我所看到的是在这个问题中有相同的错误结构,你试图将函数的返回值声明为变量,并为该变量赋值。语言不是这样工作的。(谢天谢地,我不知道有哪一个是这样的。)你只是想改变元素的
id
值吗?还是别的什么?@BharatSoni:问题出在哪里?解决方案是什么?如果
语句与什么有关系?现在完全不清楚你想做什么。当你在变量中存储一个值时,你用这个变量来引用它当你将它存储在不同的变量中时,你会使用不同的变量来引用该值。我越是看你的代码,它听起来就越像你真正想要的是某种编程入门教程,因为你似乎从根本上误解了变量的概念。
$('#ccc').on('click',function(){
   window[this.id] = 12;
    alert(window[this.id]);
});
$(this).attr(id)
alert($(this).attr(id));
<div id="abc">some text goes here</div>

//mixing jquery and pure javascript
$('#ccc').on('click',function(){
  alert(this.id);
});

//using only Jquery
 $('#ccc').on('click',function(){
  alert($(this).attr('id'));
});