如何在下一个<li>中附加数据

时间:2016-11-25 19:32:43

标签: jquery html

我想在点击时将数据附加到最近的李...我接下来试过,父母,最近,找不到。

这是我的jsfiddle ......

http://jsfiddle.net/kT3Rb/47/

我的jquery:

$(document).ready(function(){
   $(document).on('click', '.btnMoreInfo', function(){
       $(this).closest(".test").next('.infoCatcher').append('<div class="moreInfo info">More Content..' + '</div>');
   });
});

不工作。我可以知道为什么以及如何解决这个问题?感谢

3 个答案:

答案 0 :(得分:2)

以下是关于如何定位最近的li的纯Javascript示例: http://jsfiddle.net/kT3Rb/54/

和片段:

&#13;
&#13;
var closestLi = document.body.firstElementChild.firstElementChild;
var content = document.createTextNode('Your content here');
closestLi.appendChild(content);
&#13;
<ul>
    <li>
        <button class='btnMoreInfo'>More</button>    
    </li>
    <li class="test">
         <div class='infoCatcher'></div>
    </li>
   <li>
        <button class='btnMoreInfo'>More</button>    
    </li>
    <li class="test">
         <div class='infoCatcher'></div>
    </li>
       <li>
        <button class='btnMoreInfo'>More</button>    
    </li>
    <li class="test">
         <div class='infoCatcher'></div>
    </li>
       <li>
        <button class='btnMoreInfo'>More</button>    
    </li>
    <li class="test">
         <div class='infoCatcher'></div>
    </li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

另一种方法是使用childrenclosest方法。

$(document).ready(function(){
    $(document).on('click', '.btnMoreInfo', function(){
      $(this).closest("li").next().children('.infoCatcher').append('<div class="moreInfo info">More Content..' + '</div>');
    });
});

答案 2 :(得分:1)

使用getSchema(value, schema){ if(schema == 'Currency'){ return value + "| currency: 'USD':true"; } else if(schema == 'Number'){ return value + '| number'; } } 您只会遍历三个DOM,因为closest()是您按钮的父级的兄弟,您找不到任何内容。

您需要以下内容:

.test

那将是:

  • $(this).parent().next().find('.infoCatcher').append('<div class="moreInfo info">More Content..' + '</div>'); 实际按钮
  • $(this)直至李父母
  • .parent()定位您的标记上的下一个li。.test
  • .next()以及div infoCatcher 追加

FiddleDemo