html代码:
<div><p>Hello</p><p>Hello</p></div>jQuery 代码:
$("p").parent()结果:
[ <div><p>Hello</p><p>Hello</p></div>]如果我只想获取div标签怎么办?比如我想给div变色,但是里面的内容不变色,如何操作。不能直接选$("div")也不能指定id或者class,有特殊需求。

解决方案 »

  1.   

    给div变色,但是里面的内容不变色?!你div的背景都变了。。它们不变都不行啊。。
      

  2.   

    已经正确获取这个div元素对象了啊。。
    <div><p>Hello</p><p>Hello</p></div>
    <style type="text/css">
    p { background-color:blue; }
    </style>
    <script type="text/javascript">
    var obj = $("p").parent().css('background-color', 'black');
    </script>
      

  3.   

    $("p").parent("div")试试,至于你只想给div变色,就唯有把div里面的元素加一次样式把优先级提高了。
      

  4.   

    我通过测试确定$("p").parent()
    得到的是DIV
      

  5.   

    我倒是想问问“给div变色,但是里面的内容不变色”这个怎么操作
      

  6.   

    我只想操作外围的div不想操作里面的内容 parent()获取的是个集合,但是我只想要div这个对象,比如append内容只想附加到div里。
    而且我上面的语句选择出的是不能给变色的因为是个集合,试过了。
      

  7.   

    $("p").parent()
    按照你给的代码。。它取到的就是div..不知道你怎么测的。。
      

  8.   

    juqery:
    $("#Menu li a").live("mouseover",function(){
    id=$(this).attr("title")
    li=$(this).parent("li")

    li.css({"backgroundColor":"red"})


    })html:<ul id="Menu">
    <li><a title="1">管理片区</a></li>
        
    </ul>鼠标移动到上面并没有变色,因为获取的不是<li></li> 是<li><a title="1">管理片区</a></li>
      

  9.   

      $("p").parent()     获取到肯定是  <div><p>Hello</p><p>Hello</p></div> 
      div里面包含p标签
      

  10.   


    那有办法获取只是外围标签(div)吗?
      

  11.   


    一样的,写法不同而已。我的问题就是想只选择外围的div标签。
      

  12.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    </head><body>
        <ul id="Menu">
     <li><a title="1">管理片区</a></li>
         
    </ul>
    <script>
        $("#Menu li a").live("mouseover", function () {
            id = $(this).attr("title")
            li = $(this).parent("li")        li.css({ "backgroundColor": "red" })
        })</script>
    </body>
    </html>为什么变色了。。
      

  13.   

    明白了,你的JS代码要放到ul后面或者写到$(document).ready()中才行,否则代码在执行的时候由于元素还没有被加载到DOM树中,所以没办法获取到相应的元素对象。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready( function() {
    $("#Menu li a").live("mouseover",function(){
    id=$(this).attr("title");
    li=$(this).parent("li");
    li.css({"backgroundColor":"red"});
    })
    });
    </script>
    </head><body>
    <ul id="Menu">
      <li><a title="1">管理片区</a></li>
    </ul>
    </body>
    </html>
      

  14.   


    $(document).ready( function() {})和
    $(function(){})不是等价的啊,我以前忘记在哪看见说是等价了,看来我以前整错了,我去查查资料。
      

  15.   

    我查了下书是一样的啊,$(document).ready( function() {})和
    $(function(){})
      

  16.   

    没粘上来而已,不过问题解决了,其实我昨天还问了个hover的问题,也是你回答的,其实主要原因还是hover的事情(我用ajax获取数据总获取2遍,在触发hover的时候)。这个问题先不着急解决了,以后慢慢研究,主要我暂时研究它没实际意义了,呵呵。3q