这是我的HTML代码
<form class="addtowatchlistform" action="logo/insertwatchlist.php" method="POST">
<input type="hidden" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'"/>
<button id="addtowatchlistbutton" type="submit" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'" data-tooltip="ADD TO YOUR WATCHLIST" class="material-icons" style="color:'.$watchlisticoncolor.'">add_box</button>
</form>
// Same form as above
<form class="addtowatchlistform" action="logo/insertwatchlist.php" method="POST">
<input type="hidden" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'"/>
<button id="addtowatchlistbutton" type="submit" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'" data-tooltip="ADD TO YOUR WATCHLIST" class="material-icons" style="color:'.$watchlisticoncolor.'">add_box</button>
</form>
Jquery代码:
<script>
$(".addtowatchlistform").submit(function(e) {
var data = $(this).serialize();
var url = $(this).attr("action");
var form = $(this); // Add this line
$.post(url, data, function(data) {
try {
data = JSON.parse(data);
$(form).children("button").css('color',data.watchlisticoncolor);
$(form).children("button").data('tooltip', data.addremove + " TO YOUR WATCHLIST"); // This line not working
} catch (e) {
console.log("json encoding failed");
return false;
}
});
return false;
});
</script>
PHP文件insertwatchlist.php
文件
$response = new \stdClass();
$response->addremove = "REMOVE";//you can get the data anyway you want(e.g database)
$response->watchlisticoncolor = "red";
die(json_encode($response));
输出PHP文件insertwatchlist.php
文件
{"addremove":"REMOVE","watchlisticoncolor":"red"}
预期结果:
1.)当有人点击add_box按钮时,它会在不重新加载页面的情况下提交表单(这个工作正常)
2。)当有人点击add_box
按钮时,它会color
更改。 (工作正常)
3。)当有人点击add_box
按钮时,data-tooltip=""
值会发生变化。 (这个不起作用)
所以第3点不按预期工作,我的Jquery代码有什么问题?控制台选项卡为空,它不显示任何内容。
答案 0 :(得分:1)
你的jquery代码应该是这样的
$(form).children("button").attr('data-tooltip',data.addremove + "TO YOUR WATCHLIST");
或
$('.material-icons').attr('data-tooltip',data.addremove + "TO YOUR WATCHLIST");