Javascript 从Html元素创建变量

Javascript 从Html元素创建变量,javascript,jquery,variables,dynamic,Javascript,Jquery,Variables,Dynamic,是否可以从一个网页中获取所有元素,并为每个元素创建一个变量?您能否在每个函数中创建变量并将其命名为与其元素名称相同的名称?使用: var div = $('div'); div.click(); 使用: 是的,但是要小心 如果元素引用在加载时存在并且以后没有更改,那么将其存储在变量中是很有用的,但是在加载后删除div会导致变量返回未定义。如果在声明变量后添加div,您还将遇到错误 阅读。是的,但要小心 如果元素引用在加载时存在并且以后没有更改,那么将其存储在变量中是很有用的,但是在加载后删除d

是否可以从一个网页中获取所有元素,并为每个元素创建一个变量?您能否在每个函数中创建变量并将其命名为与其元素名称相同的名称?

使用:

var div = $('div');
div.click();
使用:

是的,但是要小心

如果元素引用在加载时存在并且以后没有更改,那么将其存储在变量中是很有用的,但是在加载后删除div会导致变量返回未定义。如果在声明变量后添加div,您还将遇到错误

阅读。

是的,但要小心

如果元素引用在加载时存在并且以后没有更改,那么将其存储在变量中是很有用的,但是在加载后删除div会导致变量返回未定义。如果在声明变量后添加div,您还将遇到错误


阅读。

如果要将单击事件绑定到所有div元素,您可以轻松地执行以下操作:

var div = $('div');
div.click(function(){
    //do something
});

如果要将click事件绑定到所有div元素,可以轻松地执行以下操作:

var div = $('div');
div.click(function(){
    //do something
});

缩短jQuery选择器、开销和页面性能的一个好方法是使用VanillaJS:

选择对象是使用vanilla JS最容易做的事情之一。我不知道您的用例是什么,但jQuery的许多功能从未被使用过。如果你正在寻找优化,试着在没有它的情况下生活一段时间,你可能会感到惊讶。下面是一些开箱即用的方法来获取短变量中的元素

获取文档中的所有div:

var divs = document.querySelectorAll('div');
仅获取第一个div:

var div = document.querySelector('div');
获取特定的div:

var div = document.getElementById('somediv');

通过这种方式,您可以按单点控制所有变量,而不是试图解决所有可能不需要解决的问题。

缩短jQuery选择器和开销以及页面性能的一个好方法是使用VanillaJS:

选择对象是使用vanilla JS最容易做的事情之一。我不知道您的用例是什么,但jQuery的许多功能从未被使用过。如果你正在寻找优化,试着在没有它的情况下生活一段时间,你可能会感到惊讶。下面是一些开箱即用的方法来获取短变量中的元素

获取文档中的所有div:

var divs = document.querySelectorAll('div');
仅获取第一个div:

var div = document.querySelector('div');
获取特定的div:

var div = document.getElementById('somediv');

通过这种方式,您可以按单点菜单控制所有变量,而不是试图解决所有您可能不需要解决的问题。

正如您所说,这只是为了好玩。。所以我认为这应该起到作用:

$("*").each(function() {
  const elmnt = $(this);      
  const id = elmnt.attr("id");

  if(id) {
     window[id] = elmnt;
  }
});

这将仅为定义了id的DOM创建变量。但是你可以按照你想要的方式改变规则。

正如你所说,这只是为了好玩。。所以我认为这应该起到作用:

$("*").each(function() {
  const elmnt = $(this);      
  const id = elmnt.attr("id");

  if(id) {
     window[id] = elmnt;
  }
});

这将仅为定义了id的DOM创建变量。但是,您可以按自己的方式更改规则。

是否要将所有DOM元素变量保留在内存中?我真的认为这不是个好主意。JQuery在执行其函数时搜索元素,这就是为什么必须使用$$是函数名称的缩写Cool,是的,我只是想尝试一下,但我不能在循环中创建变量,这就是我想要的..你想把所有DOM元素变量都保存在内存中吗?我真的认为这不是个好主意。JQuery在执行其函数时搜索元素,这就是为什么必须使用$$是函数名称的缩写Cool,是的,我只是想尝试一下,但我不能在循环中创建变量,这就是我想要的..是的,我知道这种方法,但我需要动态的,以便可以在任何页面上使用,它需要自动分配每个element@TeTPsy还不完全清楚如何使用存储的变量。您所描述的内容听起来像是使用AngularJS所做的事情,您可以使用单独的控制器加载不同的内容。你提到的div变量有点像一个角度指令…谢谢你的回复,我说这只是为了好玩,我的意思是我想要它,这样任何人都可以将脚本添加到他们的网页,它会自动从元素中生成变量等等,我知道这种方式,但我需要它的动态性,这样它可以在任何页面上使用,它需要自动分配每个element@TeTPsy还不完全清楚如何使用存储的变量。您所描述的内容听起来像是使用AngularJS所做的事情,您可以使用单独的控制器加载不同的内容。你所指的div变量类似于一个角度指令……谢谢你的回复,我说这只是为了好玩,我的意思是我想要它,这样任何人都可以将脚本添加到他们的网页中,它会自动从元素中生成变量,etci需要它动态,就像任何人都可以将它添加到他们的网页,它会自动从他们的元素中生成变量etci需要它动态,就像任何人都可以将它添加到他们的网页,它会从他们的元素中自动生成变量etcThanks,是的,我知道这不是最好的做法,只是我想:@TeTPsy我一直在阅读你的评论,也许你想要什么
要做的是,创建一个jQuery方法,该方法将类的所有元素扩展到具有自定义功能的对象中。你可以写一次方法,从那以后,每个扩展元素都会获得原始元素的行为…谢谢,是的,我看到这不是最好的做法,只是我想:@TeTPsy我一直在读你的评论,也许你想做的是,创建一个jQuery方法,该方法将类的所有元素扩展为具有自定义功能的对象。你可以写一次这个方法,从那以后,每个扩展元素都会获得原始元素的行为…谢谢,伙计,我会检查它,但似乎它可能会工作:谢谢,伙计,我会检查它,但似乎它可能会工作: