代码之家  ›  专栏  ›  技术社区  ›  Delebrin

如何使用jQuery按ID选择子元素?

  •  8
  • Delebrin  · 技术社区  · 16 年前

    在另一个容器中的span元素中选择文本时遇到问题。

    HTML输出示例如下:

    <div id="Address_1">
        <span id="Address">Some Address</span>
        <span id="City">Some City</span>
        <span id="State">Some State</span>
        <span id="Zip">Some Zip</span>
    </div>
    
    <div id="Address_2">
        <span id="Address">Some Address</span>
        <span id="City">Some City</span>
        <span id="State">Some State</span>
        <span id="Zip">Some Zip</span>
    </div>
    

    我试过使用以下方法(以及许多变体):

    $("#Address_" + Id).children().find("#Address").text;
    $("#Address_" + Id).find("span#Address").text;
    $("#Address_" + Id).find("span").find("#Address").text;
    

    我确信这是一件非常简单的事情,我做得不对,但我似乎能弄明白。我在这里搜索了很多问题,也在寻找一个类似的问题,但我似乎找不到我要找的。如果我只是没有使用正确的措辞搜索,我提前道歉。

    非常感谢您的帮助。

    更新:这是我的解决方案,感谢Ken Redler的帮助。

    <div id="Address_1">
        <span class="Address">Some Address</span>
        <span class="City">Some City</span>
        <span class="State">Some State</span>
        <span class="Zip">Some Zip</span>
    </div>
    
    $("#Address_" + Id).find("span.Address").text();
    
    1 回复  |  直到 16 年前
        1
  •  10
  •   Ken Redler    16 年前

    ID在整个文档中必须是唯一的。您应该改为使用“内部”IDs类。那你就得:

    $('#Address_'+Id).find('span.address').text();
    

    根据LarsH的评论,在你的文件中,你有:

    <div id="Address_1">
        <span id="Address">Some Address</span>
    

    您可以将其更改为:

    <div id="Address_1">
        <span class="Address">Some Address</span>
    

    如果一个特定的ID不止一个,那么你的结果最多只能是不可预测的。