使用此变量获取空值

时间:2016-10-14 09:22:55

标签: javascript jquery html

使用此运算符单击锚标记时,我得到一个空白值。我有多个具有相同类的div,这就是我使用.each()函数的原因,我不知道我在哪里做错了。 输出应该是,在点击一下,第一个值应出现在输入中,依此类推 这是我的代码



$(document).ready(function(){
  $('.main').each(function(){
    $('a',this).click(function(){
      $val = $('p',this).text();
      $("#aarti").val($val);
      alert($val);
    });
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
  <p>value one</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK ONE</a></p>
  </div>
</div>
<div class="main">
  <p>value two</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK TWO</a></p>
  </div>
</div>
<div class="main">
  <p>value three</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK THREE</a></p>
  </div>
</div>
<div class="main">
  <p>value four</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK FOUR</a></p>
  </div>
</div>
<input type="text" id="aarti" />
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您需要遍历父main元素,然后定位其子p元素

 jQuery(document).ready(function() {
   $('.main a ').click(function(e) {
     e.preventDefault();
     var $val = $(this).closest('.main').children('p').text();
     $("#aarti").val($val);
   });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
  <p>value three</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK THREE</a>
    </p>
  </div>
</div>
<div class="main">
  <p>value four</p>
  <div id="sub" style="display: block;">
    <p><a href="#" data-toggle="modal" data-target="#myContactModal">CLICK FOUR</a>
    </p>
  </div>
</div>


<input type="text" id="aarti" />

答案 1 :(得分:0)

没有必要循环主类。只需点击你想要的主要内容,this就会得到它,然后可以为你完成剩下的工作

试试这个:

 $(document).on('click','.main',function(){
   $("#aarti").val($(this).find('p').html());
 });

答案 2 :(得分:0)

$('.main').on('click', 'a', function(e) {
      var $val = $(this).find('p').text();           
      alert($val);
});

应该帮助