代码之家  ›  专栏  ›  技术社区  ›  Suresh Ponnukalai

jquery中div[id=testing]和div[id$=testing]之间的差异

  •  1
  • Suresh Ponnukalai  · 技术社区  · 11 年前

    HTML格式

    <div id="testing">MY TEDT</div>
    <div id="testing1">MY TEDT Number 1</div>
    <div id="testing2">MY TEDT Number 2</div>
    

    JQUERY查询

    $('div[id=testing1]').css("display", "none");
    

    我使用了上面的jquery代码来隐藏带有id测试的div。它工作得很好。查看以下代码。

    $('div[id$=testing1]').css("display", "none");
    

    此代码也执行相同的操作。我只是想知道 $ 在这里使用?因为没有 $ 它也工作得很好。

    Fiddle DEMO

    5 回复  |  直到 11 年前
        1
  •  2
  •   Anoop Joshi P    11 年前

    第一个选择id为的元素 testing1 。它将始终只选择一个元素。最好使用, $('#testing1').css("display", "none"); 因为id是唯一的。

    第二个代码将选择具有id的元素, ending 具有 测试1 。这可以选择多个元素。

    实例第二个代码将选择id为的元素 testtesting1 。因为它有 测试1 最后

        2
  •  2
  •   Jai    11 年前

    在这里:

    $('div[id$=testing1]').css("display", "none");
    

    $ 表示以testing1结尾的id,使用 display:none; .

    在正则表达式中,您经常看到以下字符:

    ^ : starts with
    $ : ends with
    

    所以如果你有一个id为的元素,比如:

    <div id="div-box">New Division</div>
    

    这三个相似:

    $('#div-box')
    $('[id^="div"]')
    $('[id$="box"]')
    
        3
  •  2
  •   Ashish Mehta    11 年前
    $('div[id=testing1]').css("display", "none");
    

    is选择id值正在测试的所有元素1

    $('div[id$=testing1]').css("display", "none");
    

    与id值以testing1结尾的每个元素匹配

        4
  •  1
  •   ssut    11 年前

    $ 以结尾 .

    我建议使用 $('#testing1') 而不是 $('div[id=testing1]') .(第一个选择器快得多)

        5
  •  1
  •   Ashley Medway Karthi    11 年前

    $ 是一个 以结尾 选择器。

    因此,正确的是,它在您的示例中没有任何用处,但在这里:

    $('div[id$=ting1]').css("display", "none");
    

    这个 id="testing1" 仍然隐藏。

    如果要按ID选择元素,应使用: $('#testing1') 因为这种形式的ID选择器要快得多。

    文档 here .