Javascript 如何使用jquery创建哈希对象/数组?
我知道Javascript原型框架中有一个Hash()对象,但是Jquery中有类似的东西吗 我希望坚持使用一个javascript框架,而不是将原型框架和JQuery框架混合使用,因为我担心会出现冲突并产生副作用 所以我的问题是:如何使用jquery创建哈希对象/数组 以下是我的功能:Javascript 如何使用jquery创建哈希对象/数组?,javascript,jquery,hash,prototypejs,Javascript,Jquery,Hash,Prototypejs,我知道Javascript原型框架中有一个Hash()对象,但是Jquery中有类似的东西吗 我希望坚持使用一个javascript框架,而不是将原型框架和JQuery框架混合使用,因为我担心会出现冲突并产生副作用 所以我的问题是:如何使用jquery创建哈希对象/数组 以下是我的功能: /* prototype framework, I want to change this to jQuery! */ var starSaves = new Hash(); function myHover
/* prototype framework, I want to change this to jQuery! */
var starSaves = new Hash();
function myHover(id, pos)
{
var starStrip = $('star_strip_' + id);
if (starSaves.keys().indexOf(id) == -1)
{
var starSave = new Array();
var imgs = starStrip.select("img")
alert(imgs);
for (var i = 0; i < imgs.length; i++)
{
starSave[starSave.length] = imgs[i].src;
if (i < pos)
imgs[i].src = "/images/star_1.gif";
else
imgs[i].src = "/images/star_0.gif";
}
starSaves.set(id, starSave);
}
}
/*原型框架,我想将其更改为jQuery*/
var starSaves=newhash();
功能myHover(id、pos)
{
var starStrip=$('star_strip_'+id);
if(starSaves.keys().indexOf(id)=-1)
{
var starSave=新数组();
var imgs=starStrip.select(“img”)
警报(imgs);
对于(变量i=0;i
浏览jQuery文档,我没有看到任何专门针对这一点的内容。但只需使用常规javascript对象即可轻松完成此操作:
var starSaves = {};
function myHover(id, pos)
{
var starStrip = $('star_strip_' + id);
if (typeof starSaves[id] == 'undefined')
{
var starSave = new Array();
var imgs = starStrip.select("img")
alert(imgs);
for (var i = 0; i < imgs.length; i++)
{
starSave[starSave.length] = imgs[i].src;
if (i < pos)
imgs[i].src = "/images/star_1.gif";
else
imgs[i].src = "/images/star_0.gif";
}
starSaves[id] = starSave;
}
}
var-starSaves={};
功能myHover(id、pos)
{
var starStrip=$('star_strip_'+id);
if(starSaves的类型[id]=“未定义”)
{
var starSave=新数组();
var imgs=starStrip.select(“img”)
警报(imgs);
对于(变量i=0;i
基本的散列可以通过基本的JavaScript而不是jQuery来实现(我知道Prototype的散列增加了额外的功能,但这里不使用它)
var-starSaves={};
功能myHover(id、pos)
{
如果(!starSaves.hasOwnProperty(id)){
var starSave=starSaves[id]=[];
$('#star_strip.'+id+'img').attr('src',函数(索引,当前){
starSave.push(当前);
返回(索引
据我所知,jQuery中没有与原型哈希等价的东西
以下内容对你有什么用处吗?使用jQuery
var-starSaves={};
功能myHover(id、pos)
{
var starStrip=$('.star_strip_'+id);
如果(!starSaves[id])
{
var starSave=[];
starStrip.each(函数(索引、元素){
starSave[index]=$(元素).attr('src');
$(element.attr('src',index
有一个独立的哈希表实现,名为(完全公开:我写的)。使用它,您的代码将是:
var starSaves = new Hashtable();
function myHover(id, pos)
{
var starStrip = $('star_strip_' + id);
if (!starSaves.containsKey(id))
{
var starSave = new Array();
var imgs = starStrip.select("img")
alert(imgs);
for (var i = 0; i < imgs.length; i++)
{
starSave[starSave.length] = imgs[i].src;
if (i < pos)
imgs[i].src = "/images/star_1.gif";
else
imgs[i].src = "/images/star_0.gif";
}
starSaves.put(id, starSave);
}
}
var starSaves=newhashtable();
功能myHover(id、pos)
{
var starStrip=$('star_strip_'+id);
如果(!starSaves.containsKey(id))
{
var starSave=新数组();
var imgs=starStrip.select(“img”)
警报(imgs);
对于(变量i=0;i
我认为您不需要jQuery来实现这一点
var hashtable = {
hash: {},
exists: function(key){
return this.hash.hasOwnProperty(key);
},
get: function(key){
return this.exists(key)?this.hash[key]:null;
},
put: function(key, value){
this.hash[key] = value;
}
}
谢谢,它小巧实用!
var starSaves = new Hashtable();
function myHover(id, pos)
{
var starStrip = $('star_strip_' + id);
if (!starSaves.containsKey(id))
{
var starSave = new Array();
var imgs = starStrip.select("img")
alert(imgs);
for (var i = 0; i < imgs.length; i++)
{
starSave[starSave.length] = imgs[i].src;
if (i < pos)
imgs[i].src = "/images/star_1.gif";
else
imgs[i].src = "/images/star_0.gif";
}
starSaves.put(id, starSave);
}
}
var hashtable = {
hash: {},
exists: function(key){
return this.hash.hasOwnProperty(key);
},
get: function(key){
return this.exists(key)?this.hash[key]:null;
},
put: function(key, value){
this.hash[key] = value;
}
}