2

所以你有一堆元素,你用 jQuery 选择其中一个。

($('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 节点的引用作为字符串传递?

4

1 回答 1

0

假设您一次只进行一次状态更新,为什么不能简单地给元素一个临时 id,如“current_el”,然后当 websocket 返回时,您可以简单地访问 id 为“current_el”的元素每次?所以基本上,你设置一个每次都相同的临时 id。这样您甚至根本不必发送选择器,您只需访问临时 id 并在服务器请求返回时将其清除。

但是,如果您需要保留一个参考以供将来使用该元素,您的方法似乎就可以了。我不知道任何旨在实现此目的的 jQuery 函数。希望这可以帮助。

于 2012-07-29T20:01:15.340 回答