如何重新定位ajax检索的元素

时间:2014-11-06 09:18:10

标签: jquery ajax

正如标题所说,我试图在提交表单后操纵一个被带入网页的元素。这是ajax的回应。

我知道有一种不同的方式来处理由ajax带来的元素。

$('#cartx').html($('#cartcopy').html());

我可能很清楚我正在尝试做什么:通过ajax更新购物车内容。 我一直收到这个错误:

Uncaught TypeError: Cannot read property 'html' of null 

我该怎么办?

稍后编辑:

这是代码:

function hideJ2tOverlay(){
$('j2t-overlay').hide();
$('j2t_ajax_progress').hide();
$('j2t_ajax_confirm').hide();
  $('#cartx').html('test');

}

网站是skin79.ro

1 个答案:

答案 0 :(得分:0)

您的问题是您有另一个插件(或代码)将jQuery通常使用的全局$设置为非jQuery的函数(或对象)。

您需要在警报中使用jQuery而不是$

e.g。

  alert(jQuery('#cartcopy').html());

更好的替代方法是使用DOM就绪处理程序的快捷版本本地范围$

jQuery(function ($) {YOUR CODE HERE USING A LOCAL $});

e.g。

  jQuery(function ($) {
      setInterval(function () {
          alert($('#cartcopy').html());
      }, 1000);

      $('#brands-list').jcarousel({
          scroll: 2,

          auto: 3,
          wrap: 'circular',
          start: 1
      });
      $('#features-list').jcarousel({
          scroll: 2,

          auto: 3,

          wrap: 'circular',
          start: 1
      });
      $('#cartx').hover(function () {
          $(this).children('.cart-top-container').slideDown();
      }, function () {
          $(this).children('.cart-top-container').slideUp();
      });

  });

然后,您可以在处理程序中引用较短的$,而不必担心其他全局$