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