=a1
=c3+c5-c26
=c3+c5-c26
下面函式已經可以適應以上情況
需要:改進適應這種混合運算
=c8+(b10+......-b25)
b10+......-b25的意思是b10累加至 b24-b25
<table id="tab">
<tr>
<td id="a1">10</td>
<td id="a2">50</td>
<td id="a3">20</td>
<td id="a4">10</td>
<td id="a5">=a1+a2+b5</td>
</tr>
<tr>
<td id="b1">50</td>
<td id="b2">70</td>
<td id="b3">60</td>
<td id="b4">40</td>
<td id="b5">=b1+b2</td>
</tr>
<tr>
<td id="c1">50</td>
<td id="c2">70</td>
<td id="c3">60</td>
<td id="c4">=a1+.....+a4</td>
<td id="c5">=c1+...+c4</td>
</tr>
</table>
<script type="text/javascript">
function calc(obj) {
var str = obj.innerText;
if (str[0]=="=") {
obj.innerText = eval(str.slice(1).replace(/([a-z]+)(\d+)([\+\-\*\/])\.{3,}\3\1(\d+)/ig,function (s,a,b,c,d) {
var arr = [];
b = parseInt(b, 10);
d = parseInt(d, 10);
for (var i = b; i <= d; i++)
arr.push(a+i);
return arr.join(c);
}).replace(/[a-z]+\d+/ig,function (s) {
return calc(document.getElementById(s));
}));
}
return obj.innerText;
}
var td = document.querySelectorAll("#tab td");
for (var i = 0, len = td.length; i < len; i++) {
calc(td[i]);
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/235986.html
標籤:JavaScript
上一篇:web實作在線編輯
