【问题标题】:Jquery HTML Traversal in Below code下面代码中的Jquery HTML遍历
【发布时间】:2013-07-15 15:51:22
【问题描述】:
<div class="main">
<button class="btnClick" type="button"> </button>
<button class="btnClick" type="button"> </button>
<div class="child">
<p> ** Some child Text ** </p>
<textarea id="edit" class="hidden"></textarea>  //class hidden == Display:none
</div>
</div>

<div class="main">
<button class="btnClick" type="button"> </button>
<button class="btnClick" type="button"> </button>
<div class="child">
<p> ** Some child Text ** </p>
<textarea id="edit" class="hidden"></textarea>  //class hidden == Display:none
</div>
</div>

我正在尝试使用上述代码实现编辑部分。上面的&lt;div&gt; 是动态生成的,当用户单击按钮时,我需要隐藏该特定 Div 的 &lt;p&gt; "** Some child Text ** " and make the Textarea visible 并复制

部分到文本区域

我试过点击按钮

$(this).closest('#edit').removeClass("hidden");

但它不起作用,并且每次使用其他代码时,无论我点击哪个按钮,都只有第一个 textarea 可见

我正在寻找的是在第一个按钮上单击特定的&lt;div&gt; textarea class hidden to be removed and copy the&lt;p&gt; text to Textarea on that particula &lt;div&gt;

最好的方法是什么。我可以添加任何新类并使代码通用。你的想法!!

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您应该从 textarea 中删除 id 以避免有多个相同的 id。

    这个函数可以满足你的需要。

    $(document).on('click', '.btnClick', function(){
        //cache the child div block (everything you want is in here)
        child = $(this).next('.child');
    
        //hide the p tag
        child.find('p').hide();
    
        //this copies the p tag in
        child.find('textarea').val( child.find('p').html() ); 
    
        //this shows the textarea
        child.find('textarea').show();
    });
    

    这是一个 jsfiddle:http://jsfiddle.net/6wAUK/

    【讨论】:

    • 小提琴看起来很棒!如果我在第一个按钮单击时有 2 个按钮,我如何导航到 div
    • 我不明白你的意思?
    • 在我的问题中更新代码添加了另一个按钮,我希望事件在第一次单击按钮时发生
    • 最简单的方法是将另一个类分配给第一个按钮并针对该按钮运行 jQuery。否则你可以做 $('.main').find('.btnClick').first().click( function() { ... } );你可以复制我在这里的功能。
    【解决方案2】:

    试试

    $(document).on('click', '.btnClick', function(){
        var div = $(this).next()
        div.find('p').hide();
        div.find('textarea').show();
    })
    

    【讨论】:

    • 谢谢!我的 HMTL.Updated 代码中的一些小改动
    【解决方案3】:

    试试

    $(this).parent("div").find('#edit').removeClass("hidden");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多