回答
HTML:
<ul>
<li id="accounts">
<p> Accounts </p>
<ul>
<li> 1 </li>
<li> 2 </li>
<li> 3 </li>
<li> . </li>
</ul>
</li>
</ul>
的JavaScript:
// Get accounts, ul and set sum to 0
var acc = document.getElementById("accounts"),
ul = acc.getElementsByTagName("ul")[0],
sum = 0;
// Filter out text nodes. Returning an array of <LI> elements
var lis = Array.prototype.filter.call(ul.childNodes, function(li) {
if (li.tagName === "LI") {
return true;
}
});
// Loop through LIs adding up the sum
for (var i = 0, ii = lis.length; i < ii; i++) {
// If it's the last LI element then set the textContent.
if (i === ii - 1) {
lis[i].textContent = sum;
} else {
sum += +lis[i].textContent;
}
}
免责声明:需要现代的浏览器或Modernizr的。
这比我自己的实现更加整洁...并且循环减少了50%..! ** + 1 ** = D –
@DavidThomas您的实施在哪里? – Raynos
我很惭愧,但它[JS小提琴](http:// jsfiddle。净/ davidThomas/HdAqr /)。这与你自己的实现非常相似,这就是为什么我没有发布它。它只是不那么漂亮和简洁... =/ –
如果你真正的标记就是这样一个列表,你可以做这样的事情:
// using jquery syntax for brevity; consider it pseudocode
var jList = $('#accounts');
function addColumns() {
var iSum = 0;
jList.find('li').each(function() {
var jLI = $(this);
if(parseFloat(jLI.text()) != 'NaN')
iSum += parseFloat(jLI.text());
});
return iSum;
}
这不是超级伟大的代码。如果您向我们提供一些关于您正在处理的内容的更多信息,则应该提供一些更强大的内容。但基本思想是你检查一组感兴趣的元素,看它们是否具有可汇总的内容(即,如果它们的文本内容可以被解释为一个数字);那么你可以将可加的项目加在一起。
像这样的算法的要求会强加你的“列”可以被标记的方式的限制。但是有一个近乎无限的可能性。
- 1. Javascript adding e.preventDefault();以脚本
- 2. Arraylist not adding java
- 3. Programmicatically Adding Assets
- 4. <A href> adding " to URL
- 5. Python..adding INT到可变
- 6. Angular 2 import node_modules not adding to build
- 7. 错误 - “Gradle DSL method not found:compile()”while adding recyclerview
- 8. while statments adding php txt to php page
- 9. PHP正则表达式question..adding逗号
- 10. Highslide adding font-size:0px ...这是否否?
- 11. 在<a href="https://octobercms.com/docs/backend/lists#adding-toolbar" rel="nofollow noreferrer">https://octobercms.com/docs/backend/lists#adding-toolbar</a>十月
- 12. Adding context.Response.Headers.Add(“Cache-Control”,“no-cache”);说IIS集成管道需要?
- 13. 水平传说获取基于位置的代码(<a href="http://zeroviscosity.com/d3-js-step-by-step/step-3-adding-a-legend" rel="nofollow noreferrer">http://zeroviscosity.com/d3-js-step-by-step/step-3-adding-a-legend</a>),我创建了一个水平上的传奇右侧
- 14. 显示在JavaScript
- 15. 原型在JavaScript
- 16. 使用javascript或jquery验证
- 17. 的Javascript:使用appendChild
- 18. asp.net ajax javascript postback
- 19. 的Javascript:由回调
- 20. 用c缩小javascript#
- 21. JavaScript日期操作怪异
- 22. 我想在javascript中添加html标记
- 23. 从<a href="https://pippinsplugins.com/adding-custom-meta-fields-to-taxonomies/" rel="nofollow">this example</a></p> <p>获得SQL
- 24. Applet的方法从Javascript
- 25. javascript - 重定向
- 26. jsp with javascript parameter javascript javascript onclick
- 27. 在JavaScript函数末尾返回语句
- 28. 的JavaScript Array.indexOf()使用本地存储
- 29. 即时更改javascript功能
- 30. 将JavaScript XMLHttpRequest转换为jQuery
到目前为止你做了什么?你有什么代码的例子吗? –