jquery将内容添加到不存在的div中?

时间:2016-01-19 21:09:16

标签: jquery ajax

我的问题是,我有一个页面有一个jquery函数,当提交文本时,它将文本内容放入#post div。

但是这个jquery在其他5个页面中使用,在这个页面中我没有#post div来放置它的内容。对于我正在做的事情,它是有目的的。

$('#submit').click(function (e) {
    var form = $('#form32');
    var submit = $('#submit');

    $.ajax({
      url: '/p.php',
      type: 'POST',
      cache: false,
      data: form.serialize(),
      success: function(data){
          $(data).hide().prependTo('#post').fadeIn(1000);
      },
    });
});

我的问题很简单,我可以在没有#post div的页面中继续使用这个脚本吗?或者它可能导致一些最终的奇怪错误?

2 个答案:

答案 0 :(得分:5)

我倾向于经常使用这个概念:

var $elem = $('#element');
if ($elem.length) {
    // I can use $elem!
    $elem.appendTo($otherElem);
}

应用于您的示例:

var $post = $('#post');
if ($post.length) {
    $(data).hide().prependTo($post).fadeIn(1000);
}

(这可以避免任何不必要的控制台错误/日志/等)

答案 1 :(得分:4)

如果找不到选择器,jQuery会无声地失败,所以你不应该在不存在这些选择器的页面上使用这些选择器。

简单示例:

$('no_such_element');

你可以把它放在任何地方没有问题