如何使用jquery insertBefore只追加一次?

时间:2015-11-07 02:47:44

标签: jquery

我需要将标题添加到我的表中,所以一旦创建了表,我就是这样做的

$( "<p>ONEHTML</p>" ).insertBefore( "#one");

但我面临的问题是它被多次追加

这是我的小提琴

c popen won't catch stderr

3 个答案:

答案 0 :(得分:1)

你的意思是当它被多次点击时被多次追加?我只想放View decorView = getWindow().getDecorView(); // Hide both the navigation bar and the status bar. // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as // a general rule, you should design your app to hide the status bar whenever you // hide the navigation bar. int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); ,点击该按钮,我会<div class='t_head'></div>。或者类似的东西,所以它改变div内部的HTML和之后的点击不会做任何事情。

答案 1 :(得分:0)

我认为你应该改变你的html,以达到你期望的输出。从你的HTML和Javascript我猜你正在尝试实现标签功能。如果它符合您的需要,请尝试这个。

DEMO

&#13;
&#13;
$("ul.tabs-2 li").click(function() {
    var tabclicked = $(this).find("a").attr("href");
    if (tabclicked === '#one') {
        $(".tabContent").hide();
        if($("#one").find("p").length === 0){
            $("#one").prepend("<p>ONE HTML</p>");
        }
        var onehtml = '<thead><th>ONE</th></thead>';
        $("#one").show().find("table").html(onehtml);
    } else if (tabclicked === '#two') {
        $(".tabContent").hide();
        if($("#two").find("p").length === 0){
            $("#two").prepend("<p>TWO HTML</p>");
        }
        var twohtml = '<thead><th>TWO</th></thead>';
        $("#two").show().find("table").html(twohtml);
    }
});

$('ul.tabs-2 li:eq(0)').click();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="divforhistoricresults" class="classhistoricaldataresults">
  <div class="list-container-2">
    <ul class="tabs-2 clearfix">
      <li class='default'><a href="#one">Data</a></li>
      <li><a href="#two">Chart</a></li>
    </ul>
  </div>
  <div class="tab-container-2">
    <div id="one" class="tabContent">      
      <table class="tab-content-1 table table-striped"></table>
    </div>
    <div id="two" class="tabContent">
      <table class="tab-content-1 table table-striped">                        
      </table>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试在.is()条件

中使用if
 && !$("p").is(function() {
      return $(this).next("#one").length
    })

仅在下一个元素不是p#one

的情况下加法#two元素

$("ul.tabs-2 li").click(function() {
  var tabclicked = $(this).find("a").attr("href");
  if (tabclicked === '#one' && !$("p").is(function() {
    return $(this).next("#one").length
  })) {
    var onehtml = '<thead><th>ONE</th>';
    $("#one").show().html(onehtml);
    $("#two").hide();

    $("<p>ONEHTML</p>").insertBefore("#one");

  } else if (tabclicked === '#two' && !$("p").is(function() {
    return $(this).next("#two").length
  })) {
    var twohtml = '<thead><th>TWO</th>';
    $("#two").show().html(twohtml);
    $("#one").hide();

    $("<p>TWO HTML</p>").insertBefore("#two");
  }
});

$('ul.tabs-2 li:eq(0)').click();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divforhistoricresults" class="classhistoricaldataresults">
  <div class="list-container-2">
    <ul class="tabs-2 clearfix">
      <li class='default'><a href="#one">Data</a>
      </li>
      <li><a href="#two">Chart</a>
      </li>
    </ul>
  </div>
  <div class="tab-container-2">
    <table id="one" class="tab-content-1 table table-striped">
    </table>
    <table id="two" class="tab-content-1 table table-striped">
    </table>
  </div>
</div>