【发布时间】:2020-10-29 17:08:18
【问题描述】:
我有一个点击计数器,它适用于一个链接,但我希望这段代码可以运行多个链接
这是一个完美适用于一个链接的代码:
<a class="counter" href="#">Title</a>
js代码:
$(document).ready(function() {
var users = (function () {
var users = null;
$.ajax({
'async': false,
'global': false,
'url': 'users.json',
'dataType': "json",
'success': function (data) {
users = data.users_value;
}
});
return users;
})();
$('#counter-number').text(users);
$('.counter').click(function() {
$.post("parser.php",{ajax: true});
});
});
PHP 代码(parser.php):
<?php
$jsonString = file_get_contents('users.json');
$data = json_decode($jsonString, true);
$data['users_value'] += 1;
$newJsonString = json_encode($data);
file_put_contents('users.json', $newJsonString);
?>
json 输出:
{"users_value":17}
我希望这段代码针对多个链接运行,例如:
<a href="#" data-id="link1">title1</a>
<a href="#" data-id="link2">title2</a>
并将每个链接的点击分别存储在json文件中
【问题讨论】:
-
代码不工作是什么意思?如果您需要捕获多个链接,请像您一样使用类选择器。如果要更新 DOM 中的某些内容,遍历代码,使用 .find()、.parents() 等与 $(this) 组合
-
它适用于一个链接,我需要按 id 将每个链接点击存储在 json 中,如下所示:{"link1":20, "link2":30}
-
然后在链接上使用 data-linkid: 属性,$(this).data("linkid")