0

嗨,我正在尝试让警报方法显示值 c8,但它只是说未定义。

我是 html 和 jquery 的新手;这很简单,但我就是看不到。

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="jquery/jquery-1.7.1.js"></script>
    <script>
      $(document).ready(function(){
        $("button").click(function(){
      //$("#div1").load("hs.php");
      //$("#div1").load("http://127.0.0.1:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=A1");
        $("#div1").load("http://127.0.0.1:81/tenHsServer/tenHsServer.aspx?t=ab&f=ToggleDevice&d=c8");
        alert($(this).prev().attr(".class"));
       });
      });
    </script>
  </head>
  <body>
    <div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
    <span class='c8'><button>Get External Content</button></span>
  </body>
</html>
4

5 回答 5

1

因为 prev() 仅适用于兄弟姐妹。你的按钮是那个 div 的子元素。

你该走了:

alert($(this).parent().attr("class"));
于 2013-03-01T22:25:10.313 回答
1

该按钮没有兄弟姐妹.prev()用于选择前一个兄弟姐妹,您要定位的元素是其父元素,因此用于.parent()选择它。.此外,当它是选择器的一部分时,您只能在类前面加上一个点 ( )。

alert($(this).parent().attr("class"));
于 2013-03-01T22:25:29.843 回答
0

您不需要属性名称前的点:

alert($(this).prev().attr("class"));
于 2013-03-01T22:21:50.270 回答
0

虽然在 jQuery 中.引入了类选择器,但在这种情况下,您只需要一个名为“class”的属性。

删除.in .class

alert($(this).prev().attr("class"));
于 2013-03-01T22:21:59.460 回答
0

您应该.attr("class")改用(不带.

于 2013-03-01T22:22:25.253 回答