Javascript 如何从jQuery检索使用JS点符号存储的数据?
我有一个脚本,它用JS和Javascript 如何从jQuery检索使用JS点符号存储的数据?,javascript,jquery,dom,syntax,store,Javascript,Jquery,Dom,Syntax,Store,我有一个脚本,它用JS和 testel = document.getElementById('#myLi'); testel.angle = 20; 如何使用JQ检索该值? 我尝试创建一个新的元素引用,比如$('#testel').angle或$('#testel').data('angle'),但没有任何效果 数据存储在哪里?甚至可能吗?您可以使用来获取底层DOM元素: var angle = $("#testel").get(0).angle; var a = $('#testel')[
testel = document.getElementById('#myLi');
testel.angle = 20;
如何使用JQ检索该值?
我尝试创建一个新的元素引用,比如$('#testel').angle
或$('#testel').data('angle')
,但没有任何效果
数据存储在哪里?甚至可能吗?您可以使用来获取底层DOM元素:
var angle = $("#testel").get(0).angle;
var a = $('#testel')[0].angle;
// ^^^-------- Gets the raw DOM element from the jQuery object
var a = $('#testel').get(0).angle;
// ^^^^^^^-------- This does too
或使用数组索引:
var angle = $("#testel")[0].angle;
您可以使用获取基础DOM元素:
var angle = $("#testel").get(0).angle;
var a = $('#testel')[0].angle;
// ^^^-------- Gets the raw DOM element from the jQuery object
var a = $('#testel').get(0).angle;
// ^^^^^^^-------- This does too
或使用数组索引:
var angle = $("#testel")[0].angle;
因为要为该元素设置一个属性,所以使用
因为要为该元素设置一个属性,所以使用 通过使用: 或使用: 通过使用: 或使用: 如何使用JQ检索该值 两种方式:
var angle = $("#testel").get(0).angle;
var a = $('#testel')[0].angle;
// ^^^-------- Gets the raw DOM element from the jQuery object
var a = $('#testel').get(0).angle;
// ^^^^^^^-------- This does too
道具:
var a = $('#testel').prop('angle');
$('#testel').angle
或$('#testel').data('angle')
,但没有任何效果
jQuery的data
函数将信息存储在不同的区域(以避免expando问题)。如果可以,我建议更改代码设置值,通过jQuery的数据设置它:
$('#testel').data('angle', 20);
…当然,您可以用同样的方法检索它:
var a = $('#testel').data('angle');
正如下面的评论所指出的,您的代码有点不匹配。你说你这样做是为了设置它:
testel = document.getElementById('#myLi');
testel.angle = 20;
…但尝试使用此来检索它时:
$("#testel").angle // (and such)
您的getElementById
代码查找ID为#myLi
的元素(包括#
开头的#
,作为ID
的一部分)。虽然这是有效的(您可以在HTML中执行,而不是在CSS中),但您实际上不太可能有:
<li id="#myLi">...</li>
在您的文档中。您可能不希望在getElementById
调用中使用#
。(您提供的是一个ID字符串,而不是CSS选择器)
不管怎样,您都希望设置和检索时使用的id
匹配。因此,如果是myLi
,请使用getElementById(“myLi”)
和$(“#myLi”)
如何使用JQ检索该值
两种方式:
从原始DOM元素获取它:
var angle = $("#testel").get(0).angle;
var a = $('#testel')[0].angle;
// ^^^-------- Gets the raw DOM element from the jQuery object
var a = $('#testel').get(0).angle;
// ^^^^^^^-------- This does too
使用道具:
var a = $('#testel').prop('angle');
数据存储在哪里
这叫做“expando”属性。它存储在原始DOM元素上。通常,最好尽量避免使用它们(避免与可能定义的新标准属性冲突,避免与页面上的其他脚本冲突)。如果不能,最好只使用其中一个(如果需要更多信息,通常指的是放置其他属性的对象)
我尝试创建一个新的元素引用,比如$('#testel').angle
或$('#testel').data('angle')
,但没有任何效果
jQuery的data
函数将信息存储在不同的区域(以避免expando问题)。如果可以,我建议更改代码设置值,通过jQuery的数据设置它:
$('#testel').data('angle', 20);
…当然,您可以用同样的方法检索它:
var a = $('#testel').data('angle');
正如下面的评论所指出的,您的代码有点不匹配。你说你这样做是为了设置它:
testel = document.getElementById('#myLi');
testel.angle = 20;
…但尝试使用此来检索它时:
$("#testel").angle // (and such)
您的getElementById
代码查找ID为#myLi
的元素(包括#
开头的#
,作为ID
的一部分)。虽然这是有效的(您可以在HTML中执行,而不是在CSS中),但您实际上不太可能有:
<li id="#myLi">...</li>
在您的文档中。您可能不希望在getElementById
调用中使用#
。(您提供的是一个ID字符串,而不是CSS选择器)
不管怎样,您都希望设置和检索时使用的id
匹配。因此,如果它是myLi
,请使用getElementById(“myLi”)
和$(“#myLi”)
(“#myLi”)。get(0)。angle
或$(testel)。get(0)。angle
或$(testel)[0]。angle
顺便说一句,它应该是:document.getElementById('myLi')代码>提问时,请提供相关的代码,而不是不相关的代码,这些代码显然不起作用。$(“#myLi”).get(0).angle
或$(testel).get(0).angle
或$(testel)[0].angle
顺便说一句,它应该是:document.getElementById('myLi')代码>提问时,请提供相关的代码,不是不相关的代码,这显然不起作用。这不是属性,而是属性。可能适用于早期版本的jQuery,但不适用于1.6+。我不知道是属性还是属性,但我只知道必须从不同的函数快速访问它,以足够快的速度计算16个对象的x和y,以生成类似蠕虫的平滑动画。我试图避免将其写入实际的DOM,因为我已经了解到遍历DOM来检索它的速度较慢(显然我还不太了解js或jq,因此无法断言数据。('angle')也不会遍历DOM,但是,“我可能不知道我需要去哪里,但我知道我在逃避什么。”。它不是属性,而是属性。可能适用于早期版本的jQuery,但不适用于1.6+。我不知道是属性还是属性,但我只知道必须从不同的函数快速访问它,才能计算