簡體   English   中英

jQuery使用attr()更改HTML屬性返回對象object

[英]Jquery change HTML attribute using attr() returns object object

我讀了多篇不同的文章和問題都無濟於事。 我有一個PHP頁面,它將每隔X分鍾使用AJAX使用數據庫中的值更新easypiechart,並進行一次檢查。 在此示例中,我通過一個警告框將時間減少到10秒,以顯示所做的更改。

我可以使用attr()查看“數據百分比”,但是如果我嘗試更改“數據百分比”屬性的值,它將返回“對象對象”。

我試圖暫時只是手動將值更改為90,直到在添加ajax響應作為替換之前讓此功能起作用。

碼:

    <!-- Link to Google CDN's jQuery + jQueryUI; fall back to local -->
<div id="test" class="easy-pie-chart txt-color-blue easyPieChart" data-percent="38" data-pie-size="160">
    <span class="percent percent-sign txt-color-blue font-lg semi-bold"></span>
</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
    if (!window.jQuery) {
        document.write('<script src="js/libs/jquery-2.1.1.min.js"><\/script>');
    }
</script>

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script>
    if (!window.jQuery.ui) {
        document.write('<script src="js/libs/jquery-ui-1.10.3.min.js"><\/script>');
    }
</script>

<script>
// Setup AJAX request -->
function updateWidgets(){
    $.ajax({
      url: "widgetGet.php",
      type: "POST",
      success: function(data) {
        var response = $.parseJSON(data);
        var idea = parseInt(response.test);
        var ID = $("#test").attr("data-percent");
        var IDchange = $("#test").attr("data-percent", 90);
        alert(ID);
      }
    });
  }

  updateWidgets();
  setInterval(updateWidgets, 10000);
  </script>

如果將警報從ID切換為IDchange,則可以看到我的問題所在。 謝謝大家,我知道我掌握在這里的社區中。

更新,可以理解,警報功能不應用於調試。 問題所在(不確定attr()是否是解決方案)是使用每10秒啟動的AJAX響應更新html屬性。 文檔如表明屬性是使用這導致了我的困惑ATTR()更新。

簡而言之,如何使用每10秒接收一次數據的AJAX更新包含easypiechart的div的html屬性?

當使用兩個參數調用.attr()函數時,它將返回jQuery對象。 換句話說,您將獲得$("#test")

這樣就可以做類似的事情

$("#test").attr("foo", "bar").hide();

如果要查看更改的值,請:

var IDchange = $("#test").attr("data-percent", 90).attr("data-percent");

閱讀大量文章后,我找到了答案,那就是easypiecharts本身。 與easypiecharts相關的JS將涉及data屬性。 閱讀easypiecharts的文檔后,我找到了答案:

$('#test').data('easyPieChart').update(90); //to update the chart to 90%

我的問題是解決問題的方向,因為大量文章都引用了attr()函數。 對於我的場景,attr()函數不會更新圖表(也不會更新prop(),除非刷新圖表以直觀地看到更新)。 這些文章在與其他外部JS文件無關的元素上引用了此功能。

感謝大家的貢獻,今天我學到了一些重要的課程。 我希望有人發現此答案對希望使用AJAX和easypiecharts進行動態百分比更新的人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM