jquery使用.next()获取显示属性

时间:2013-05-01 18:36:05

标签: jquery css next

我想得到一个div的css显示属性值。 我正在使用此代码

function addcommentdiv() {
    $('.comment-body').click(function () {
        var $this = $(this), $reply = $this.next('cevapla');
        var cevapladisplay = $reply.css('display');
        alert(cevapladisplay);
    });
};

但是此代码返回“undefined”。如何获取$ reply对象的显示属性?

CSS代码

<li class="comment">

  <div class="comment-body" id="comment-body">
    <div class="comment-author vcard">
      <div class="lightbox-photo">
        <a class="image-overlay" href='<%# "Foto/profil/foto_buyuk/" + Eval("Yorum_Profil_Foto_Buyuk") %>' data-rel="prettyPhoto" title='<%# Eval("Yorum_UserName")%>'><img src='<%# "Foto/profil/foto_kucuk/" + Eval("Yorum_Profil_Foto_Kucuk") %>' alt='<%# Eval("Yorum_UserName")%>' class="avatar" /></a>
      </div>
      <cite class="fn"><asp:HyperLink ID="linkProfil" runat="server" Text='<%# Eval("Yorum_UserName")%>' NavigateUrl='<%# "~/profil.aspx?user_id="+Eval("User_ID") %>'></asp:HyperLink></cite>
      <cite class="fn-time"></cite> 
    </div>
    <p><%# Eval("Yorum_Text")%></p>
  </div>

  <!-- MORE CODE HERE -->      

  <div class="cevapla" id="cevapla" >
   <asp:TextBox ID="txtCevapla" runat="server"    CssClass="cevaplatextbox" ></asp:TextBox>
   <asp:Button ID="btnCevapla" runat="server" Text="Button" />
  </div>

</li>

3 个答案:

答案 0 :(得分:2)

jQuery的next方法接受选择器作为参数。 http://api.jquery.com/next/

作为原始帖子的后续内容,这里是固定代码:

function addcommentdiv() {
    $('.comment-body').click(function () {
        var $this = $(this), $reply = $this.next('.cevapla');
        var cevapladisplay = $reply.css('display');
        alert(cevapladisplay);
    });
}

我删除了最后一个花括号上的;,因为这是一个函数声明。

在评论中,提问者还提到cevapla也是元素的ID。在这种情况下,假设ID是唯一的,将赋值重写为$reply = $('#cevapla')会更有意义。

答案 1 :(得分:1)

您必须使用选择器:

var $this = $(this), $reply = $this.next('.cevapla');

我不知道cevapla是什么,它是一类吗?您可以通过执行以下操作找出jQuery是否已选择元素:

console.log($this.next(".cevapla").length);

答案 2 :(得分:0)

我将“.next”更改为“.find”。它正在工作(比.next慢一点)

function addcommentdiv() {
$('.comment-body').click(function () {
    var $this = $(this), $reply = $this.find('.cevapla');
    var cevapladisplay = $reply.css('display');
    alert(cevapladisplay);
});

}

addcommentdiv();