jQuery检索最接近唯一的选择器

时间:2012-07-18 00:52:37

标签: javascript jquery css-selectors

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

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

1 个答案:

答案 0 :(得分:0)

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

但是,如果你需要保留一个参考以供将来使用该元素,你的方法似乎没问题。我不知道任何jQuery函数意味着实现这一目标。希望这可以帮助。