如何在另一个jQuery函数上调用jQuery函数?

时间:2014-08-14 12:00:17

标签: javascript jquery

如何在另一个jQuery函数上调用jQuery函数?

我正在尝试使用jQuery setInterval和load函数刷新div的内容。到目前为止,一切都工作正常,除了它加载完整的div,包括div标签。我只想重新加载/刷新div的内容。我尝试添加jQuery函数text(),但它不起作用,或者我写错了语法。

$('#numberOfTries').load('index.php #numberOfTries').text();不起作用。

这是我到目前为止所做的,它可以使用div标签加载整个div:

Index.php的HTML(上)

<div id="numberOfTries"><?php echo $numberOfTries; ?></div>

Index.php的JS(底部)

<script src="assets/js/jquery.min.js"></script> 
<script>
$(document).ready(function() {
    setInterval(function() {
        $('#numberOfTries').load('index.php #numberOfTries');
    }, 1000);
});
</script>

脚本加载完整的div,即<div id="numberOfTries">50</div>,但我只想加载div的内容,即50

当脚本运行时,HTML最终看起来像这样:

<div id="numberOfTries">
<div id="numberOfTries">50</div>
</div>

但我只希望它看起来像这样:

<div id="numberOfTries">
50
</div>

我认为我的语法$('#numberOfTries').load('index.php #numberOfTries').text();不正确。

如果需要澄清,请告诉我。

2 个答案:

答案 0 :(得分:1)

你误解了.load()的使用。

在通话过程中,您正在加载index.php页面,并抓取ID为numberOfTries的元素,并将其置于同一div

要实现您的目标,您需要使用.load()回调:

$("#numberOfTries").load("index.php #numberOfTries", function() {
  // Load the resource and look for the element.
  // When it's done, return this element .text().
  return $(this).text();
}).text();

jQuery .load()

作为旁注,值得澄清的是,.text()可以很好地处理您的示例,但是您可以将一个div嵌套在另一个中,更糟糕的是,两者都共享相同的ID。

但无论如何它都会起作用:Demo

答案 1 :(得分:0)

如果你不希望嵌套的div可以使用.replaceWith(),那么你将替换整个DIV。也许您需要将.load()中的成功数据保存在变量中。