单击许多元素中的一个元素

时间:2017-09-04 02:42:21

标签: jquery

我知道这对你来说可能很容易,但我不知道如何找到解决方案,当我点击“编辑”按钮我想只删除按钮旁边的文字而不是所有这些...我怎么会做到了吗?

     $(document).ready(function () {
        $("a").click(function () {
            click()
        })
    })

    function click() {
        var text = $(".text").text();
        alert(text)
        $(".text").remove();
        $(".contenu").prepend("<input class='input' type='text'>")
        $("input").val(text)
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="new">
    <div class="contenu" style="margin: 40px;">
        <p style="padding:0; margin:0; float: left;" class="text">Text</p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="">edit</a>
    </div>

    <div class="contenu" style="margin: 40px;">
        <p style="padding:0; margin:0; float: left;" class="text">Text</p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="">edit</a>
    </div>

</section>

感谢您的帮助

4 个答案:

答案 0 :(得分:1)

您目前正在做的是选择页面中的所有.text

$(document).ready(function () {
  $("a").click(function () {
      click()
  })
})

function click() {
  var text = $(".text").text();
  alert(text)
  $(".text").remove();
  $(".contenu").prepend("<input class='input' type='text'>")
  $("input").val(text)
}

为了能够达到您想要的输出,您应该改变处理click()的方式:

$(document).ready(function () {
  $("a").click(function () {
      // find text if there is one
      var text = $(this).find(".text").text();
      // get the parent of this element where the click orignated.
      var parent = $(this).parent(".contenu");
      // find a .text element inside parent
      $(parent).find(".text").remove();
      // add it
      $(parent).prepend("<input class='input' type='text'>");
      // set the value
      if (text) {
           // make sure text is not undefined
           $(parent).find("input").val(text);
      }
  })
})
希望有所帮助。

答案 1 :(得分:0)

您可以在jQuery中使用.next()来访问选择器的下一个元素。由于您通过JavaScript绑定处理事件,因此您可以在按钮单击代码中执行composer install

答案 2 :(得分:0)

$('a').click(function() {
    $(this).closest('div').find('p.text').remove();
});

答案 3 :(得分:0)

您想要实现的目标可以在一行中完成:

$(this).parent().prepend('<input type="text">').find('.text').remove();

这就是为什么它可以用于此目的(你需要改变&#34;编辑&#34;到&#34;保存&#34;之后,但这是另一个主题)

&#13;
&#13;
$('a').click(function(event) { 
  event.preventDefault();
  $(this).parent().prepend('<input type="text">').find('.text').remove();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="new">
    <div class="contenu" style="margin: 40px;">
        <p style="padding:0; margin:0; float: left;" class="text">Text</p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a class="edit" href="">edit</a>        
    </div>

    <div class="contenu" style="margin: 40px;">
        <p style="padding:0; margin:0; float: left;" class="text">Next</p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="">edit</a>
    </div>

</section>
&#13;
&#13;
&#13;