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

jQuery retrieve closest-to-unique selector

本文关键字:选择器 唯一 检索 最接近 jQuery      更新时间:2023-11-10

因此,您有一堆元素,并使用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节点的引用作为字符串传递?

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

但是,如果您需要为将来使用该元素保留一个引用,那么您的方法似乎很好。我不知道有什么jQuery函数可以实现这一点。希望这能有所帮助。