获取一个类元素#39;的ID

时间:2014-09-07 15:14:10

标签: jquery razor

我有一组属于'userPosts'类的div',我正在为每个元素动态创建一个单独的ID。我要设置动画的元素与单击按钮执行动画的ID相同。我希望获得所有$(“textarea”)元素的“ID”,其ID与点击的按钮具有相同的ID,并使用匹配的id为textarea设置动画。

@foreach(var post in posts){
        <div id="@post.ID"class="userPosts">
            <button class="view"id="@post.ID">View Post!!!</button><br>
            <h3><strong>Name</strong></h3><br>
            <h5>@post.FirstName</h5><br />
            <h5>@post.LastName</h5><br />
            <h3><strong>Subject</strong></h3><br>
            <h5>@post.Subject</h5><br><br>
            <br><br>
            <textarea id=""rows="4" cols="40">@post.Comments</textarea>
            </div><br><br>

           }

这不起作用,但这就是我提出的

 $(".view").on("click", function ()
{

    var selected = $(this).attr("id")
    stop().animate(selected, { height: '800px' }, 1000);
    stop().show(selected,"textarea");
    // $(".userPosts").stop().animate({ height: '800px' }, 1000);
    //$(".userPosts textarea").stop().show();
});

1 个答案:

答案 0 :(得分:1)

首先,你不需要这里的ID - 只需使用类: 下面的代码选择单击的.view按钮的父DIV(divCont),然后使用.find(),选择带有类.commentsBox的textarea。警报就是为了表明选择了正确的方框

请参阅jsfiddle了解工作示例:

 $(".view").on("click", function () {
  var divCont = $(this).closest("div")
  var txtBox = divCont.find(".commentsBox")
  alert(txtBox.val())

 });

一旦你选择了正确的textarea并给它var txtBox,你可以做任何你想做的事情(比如show,animate,fill it - whatever)

请记住,这会在DIV中找到带有.commentsBox类的下一个元素。如果您有多个.commentsBox元素,则需要使用.eq(0)根据索引选择正确的元素