代码之家  ›  专栏  ›  技术社区  ›  Raúl Roa

jquery选择器从特定的无序列表中获取li对象

  •  1
  • Raúl Roa  · 技术社区  · 15 年前

    我试图从无序列表中获取特定的li元素。

    我是这样做的:

    var listItem = $('ul.selectedItems').filter(list[i].ID);
    

    你知道为什么这样不行吗?

    3 回复  |  直到 15 年前
        1
  •  3
  •   SLaks    15 年前

    这个 filter 方法采用常规的jquery选择器,因此应该编写 filter("#"+list[i].ID) . (假设 list[i].ID id AN属性 li 元素)。此外,还有 滤波器 方法搜索jquery对象中包含的元素,而不是它们的子元素;您应该调用 children 方法。见 documentation .


    但是,最好的方法是这样:

    var listItem = $('ul.selectedItems li#' + list[i].ID);
    

    有关jquery选择器的更多信息,请参见 here .

        2
  •  1
  •   Daniel Moura    15 年前

    这只返回ul,您的选择器应返回li

    var listItem = $('ul.selectedItems li').filter(list[i].ID);
    

    但是如果你有李的身份证,你可以这样做

    var listItem = $('#' + liId);
    
        3
  •  0
  •   eKek0    15 年前

    我想你可以这样做:

      $("ul.selectedItems li").each(function(){
        if ($(this).is('#mypreferedid')) {
           //do something here
           return false; //to stop cycling
        }
      });
    

    如果您不知道元素的ID,但知道它的位置,可以这样做:

      $("ul.selectedItems li").each(function(index, element){
        if (index == selectedPosition) {
           //do something here
           return false; //to stop cycling
        }
      });