Я прочитал несколько разных статей и вопросов безрезультатно. У меня есть страница PHP, которая будет использовать AJAX для обновления easypiechart, используя значения из базы данных с проверкой каждые X минут. В этом примере я сократил время до 10 секунд с помощью окна предупреждения, чтобы показать, какие изменения были сделаны.JQuery изменение атрибута HTML с использованием attr() возвращает объект объекта
Я могу использовать attr() для просмотра «процента данных», однако он возвращает «Object Object», если я попытаюсь изменить значение атрибута «data-percent».
Я пытаюсь вручную изменить значение до 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()) является решением, заключается в обновлении атрибута html с использованием ответа AJAX, который запускается каждые 10 секунд. Документация, такая как this, показывает, что атрибуты обновляются с помощью attr(), что приводит к моей путанице.
Вкратце, как я могу обновить атрибут html div, содержащий easypiechart, используя AJAX, который получает данные каждые 10 секунд?
ну, да, это то, что делают все методы jquery при использовании в качестве сеттера. http://api.jquery.com/attr –
Вот почему вы не должны использовать 'alert()' для отладки - он принуждает все к строке и блокирует поток пользовательского интерфейса. Всегда используйте 'console.log' или' console.dir' –
Метод jQuery '.data()', на мой взгляд, предпочтительнее обманывать атрибуты напрямую, хотя это не совсем так, как это делается. – Pointy