jQuery用#+id去对象和p[id = ]取对象有什么区别,我在页面动态增加了以个标签,用$("p[id=test]")能取到对象,用$("#test")就取不到对象,请详解,谢谢

解决方案 »

  1.   

    $("p[id=test]"), 是去找<p>标签中id为test的元素。
    $("#test"),是去整个Document中找id为test的元素.
    第二个方法找不到的话, 应该是你的页面中为不止一个元素的id定义为test.
      

  2.   

    第一种方式是, elementName[attributeName=attributeValue], 比如$("div[display=none]").
      

  3.   

    jQuery用#+id 是对某个进行改变,而p[id = ]会遍历整个jsp页面中所有id=那个值的
      

  4.   

    属性过滤选择器:基本选择器:
    $("#test") 选取id为test的元素,返回单个元素
    $(".test") 选取所有class为test的元素,返回集合元素
    $("p") 选取所有的<p>元素,返回集合元素
    $("*") 选取所有元素,返回集合元素
    $("div,span,p.myCloass") 选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素过滤规则:通过元素的属性来获取相应的元素,如id,name。[attribute] $("div[id]") 选取拥有属性id的元素
    [attribute=vlaue] $("div[title=test]") 选取title为test的div
    [attribute!=vlaue] $("div[title!=test]") 选取title不为test的div.注意:没有属性title也会被选取
    [attribute^=vlaue] $("div[title^=test]") 选取title以test开头的div
    [attribute$=vlaue] $("div[title$=test]") 选取title以test结束的div
    [attribute*=vlaue] $("div[title*=test]") 选取title含有test的div
    [selector1][selector2][selector3] $("div[id][title$='test']") 选取拥有属性id,并且属性title以test结束的div