【问题标题】:Selecting li from unordered list using ul and li id's使用 ul 和 li id 从无序列表中选择 li
【发布时间】:2009-09-03 04:25:44
【问题描述】:

我想使用两个元素的 id 属性作为选择器的一部分,从无序列表中获取一个 li 项。

这是我如何使用 ul css 类使其工作的示例:

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

我尝试使用以下方法,但没有成功:

var listItem = $("#" + opt.name).childs.find("#" + opt.list[i].ID)

【问题讨论】:

    标签: jquery css-selectors


    【解决方案1】:

    当您使用 ID 时,应该不需要复杂的选择器/查找。 元素 ID 在整个文档中应该是唯一的,因此查找元素就像

    var listItem = $("#" + opt.list[i].ID);
    

    如果这不起作用,我建议修复您的 ID,使其独一无二,而不是使用不必要的复杂 CSS 选择器来解决问题。

    【讨论】:

    • +1 -- 如果你用粗体表示“元素 ID 应该是唯一的”,我会尽量给你 +2
    • 在一个完美的世界中,您无需编写其他代码:您是对的。但是,我正在使用无序列表模拟服务器端组合框的代码。列表元素从数据源动态生成,因此当两个服务器控件具有相同的数据源时,ul 输出将始终相同。我可以控制 ul id,但不能控制它的 li 元素。由于选择应该是独立于控制的,我需要能够使用这个复杂的选择器。
    【解决方案2】:

    你应该可以做这样的事情:

    var listItem = $('#' + opt.name + ' > li#' + opt.list[i].ID);
    

    应该选择作为第一个子元素的li 元素。

    在此处查看文档:jQuery Selectors: Parent/Child

    【讨论】:

    • 我尝试过这种方式没有任何运气,但是 $('#' + opt.name + ' > li[id$=' + opt.list[i].ID + ']') 做到了诀窍。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-02-05
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2020-02-01
    相关资源
    最近更新 更多