javascript - Javascript & Sharepoint:用变量值填充表
问题描述
我在我们的共享点网站上有各种列表。一个列表被命名为“LD”。我正在尝试创建一个简单的表来计算记录并汇总此列表中的成本。但是,我正在使用脚本在最底部使用变量值(Icount、SumPrices)填充表格。我哪里错了?我可以分别获取值(即:252 和 352,000 美元),如脚本顶部所示(只是一个文本)。我似乎无法将这些值放在我的表中。第 2 列和第 3 列为空白
<p id="SumPrices">352662</p>
<p id="Icount">252</p>
<table border="10" cellspacing="10" cellpadding="2">
<tbody>
<tr>
<th scope="col"> Fiscal </th>
<th scope="col"> Courses </th>
<th scope="col"> Cost </th>
<th scope="col"> Comment </th>
</tr>
<tr>
<td> 2019-20 </td>
<td id="Icount"></td>
<td id="SumPrices"></td>
<td> Something </td>
</tr>
</tbody>
</table>...
<script>
<script type="text/javascript">
var listName = 'LD';
var xhr = new XMLHttpRequest();
xhr.open('GET', _spPageContextInfo.webAbsoluteUrl +
'/_api/web/lists/GetByTitle(\'' + listName + '\')/items?
$select=Cost&$top=1000');
xhr.setRequestHeader('Accept', 'application/json; odata=verbose');
xhr.onload = function(){
if (xhr.status === 200) {
var results = JSON.parse(xhr.responseText);
results = results.d.results;
var sum = 0;
for (var i = 0; i < results.length; i++){
sum += results[i].Cost;
}
document.getElementById('SumPrices').innerText = sum;
document.getElementById('Icount').innerText = i;
}
else {
alert('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send();
</script>
解决方案
您的代码不起作用的原因是脚本在表格插入页面之前执行,因此无法找到要更新的单元格。
您需要将脚本移动到表格之后(或将表格移动到脚本之前),或者使用函数等待页面完成加载。后者有几种方法,其中一些在这个流行的问题中进行了描述。
编辑:如果您想了解更多关于在哪里放置 JavaScript 代码的信息,我建议您阅读这个问题和接受的答案,因为它用非常简单的术语解释了所有内容,并提供了多种解决方案。
推荐阅读
- python - 评估使用 Keras 创建的已保存 TensorFlow 图的结果不一致
- javascript - 如何从具有数组值的表单中获取值 ajax
- azure-devops - 在 VSTS 发布管道期间替换存储在不同工件中的多个 appsettings 文件中的值
- javascript - 如何动态地将数组值作为对象道具传递?
- android - 如何在区域设置更改期间在 Android Oreo 中进行后台 API 调用?
- xamarin.forms - 是否有 Xamarin Forms 3.6 Datepicker 的占位符与材料视觉?
- c - 带有无源蜂鸣器的 Arduino 超声波距离传感器可实现不同的音调
- python - cv2.error:(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
- kubernetes - Kubernetes DNS 间歇性失败,kube-dns 服务和 CoreDNS pod 似乎正常
- javascript - 通过单个表单提交在后台选项卡中打开多个网站搜索查询