无法使用此onclick功能显示p标签

时间:2018-06-15 13:47:29

标签: javascript jquery html

我在Jquery中有一些经验,在这里我试图创建一个jquery插件,但我被困在这里,我试图显示p标签元素 按钮是单击,

newModel.set_weights(oldModel.get_weights())
$(function() {
  var myFirst = {
    paragraph: $('p'),
    init: function() {
      $("<button></button>", {
          text: "My New Button"
        }).appendTo('.mybutton')
        .on('click', function() {
          $(this).find('p').show();
        });
    }
  }
  myFirst.init();
})

2 个答案:

答案 0 :(得分:1)

问题在于您的DOM遍历。 p是您附加的button的父级的兄弟,但您在按钮内尝试find()。请改用parent().next('p')

&#13;
&#13;
$(function() {
  var myFirst = {
    paragraph: $('p'),
    init: function() {
      $("<button></button>", {
        text: "My New Button"
      }).appendTo('.mybutton').on('click', function() {
        $(this).parent().next('p').show();
      });
    }
  }
  myFirst.init();
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="mybutton"></div>
<p style="display:none;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad illo nobis mollitia. Ex nemo quae vero, rem, magnam numquam repudiandae. Labore laborum officia corporis sint voluptatem est, odio quidem libero.</p>
&#13;
&#13;
&#13;

话虽如此,这里的逻辑与HTML的结构过于紧密地联系在一起。我建议您在init()逻辑中创建所有相关元素 - 但是,如果仅用于测试,则不一定需要深入了解。

答案 1 :(得分:0)

此行在按钮内查找p标签。

$(this).find('p').show(); 

试试这个

$('p').show();