所以你有一堆元素,你只选择其中一个。
($('div > ul > li').length === 1) // this is true
现在,如果您需要将此元素作为字符串传递,通常会:
var el = $('div > ul > lu');
var passid = el.prop('id');
// in case this element doesn't have an id="..." attribute set one
if(typeof(passid)!=='string'){
// compute an id="..." attribute based on the time
var elindex = new Date().getTime();
// make sure the id we're using isn't already in use by a different element
while($('#el_'+elindex).length)
elindex++;
// assign what we've got
passid = 'el_'+ elindex ;
el.prop('id', passid);
};
passid = '#'+passid;
// Once we're good to go, pass the resulting selector
// passon(passid);... etc.
jQuery是否附带了更好的(内置)函数(甚至是插件)以方便我将对DOM节点的引用作为字符串传递?
答案 0 :(得分:0)
假设您一次只进行一次状态更新,为什么不能简单地为元素提供一个像“current_el”这样的临时id,然后当websocket返回时,您可以简单地访问具有id的元素每次都是“current_el”?所以基本上,你每次都设置一个相同的临时id。这样你甚至根本不需要发送一个选择器,只需访问临时id并在服务器请求返回时清除它。
但是,如果你需要保留一个参考以供将来使用该元素,你的方法似乎没问题。我不知道任何jQuery函数意味着实现这一目标。希望这可以帮助。