【问题标题】:Jquery insertAfter only once if element exist如果元素存在,则 Jquery insertAfter 仅一次
【发布时间】:2011-05-31 16:09:31
【问题描述】:

如何检查元素是否存在,如果存在,我希望 insertAfter 无效。如果元素不存在,那么我希望 insertAfter 有效但只有一次。我的目标是发送如果元素不存在且不发送任何内容,则仅插入一次

【问题讨论】:

  • 在哪个元素之后插入什么元素以响应什么事件?您尝试了什么,出了什么问题?

标签: jquery


【解决方案1】:

只需检查长度即可。假设你有一个选择器#sel,并且你想在它后面插入一些东西。

var foo = 'something';
if ($('#sel').length) {
   //do something if elem is present
} else {
    $('#sel').insertAfter(foo);
}

【讨论】:

    【解决方案2】:

    您可以通过检查任何 jQuery 对象的length 属性来检查元素是否存在。

    【讨论】:

      【解决方案3】:

      根据您的需要修改后,将以下内容放在您选择的事件处理程序中:

      if (!$('elementID').length) {
          $('<div id="elementID" />').insertAfter('elementSelector');
      }
      

      例如:

      $('elementSelector').once().click(
          function(){
              if (!$('elementID').length) {
                  $('<div id="elementID" />').insertAfter('elementSelector');
              }
          });
      

      参考资料:

      【讨论】:

      • 我认为你应该使用 one() 而不是 once()。
      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2016-04-16
      相关资源
      最近更新 更多