我有表格,我只想对可见行的所有列求和
这是我的代码
var plus = $('tr').css('display') != 'none');
var sum = 0;
$('.price', plus).each(function () {
var value = $(this).text(). replace(/[^0-9]/, ' ');
sum += parseInt(value);
});
$('result').text(sum);
答案 0 :(得分:0)
这可以通过:visible
选择器来实现。
在您的情况下,可以使用 Unexpected token o in JSON at position 1
Object.AddScreen._this.setName [as onChangeText]
App.js:26:20
Object._onChange
TextInput.js:1252:42
Object.invokeGuardedCallbackImpl
ReactNativeRenderer-dev.js:93:9
invokeGuardedCallback
ReactNativeRenderer-dev.js:318:30
invokeGuardedCallbackAndCatchFirstError
ReactNativeRenderer-dev.js:342:24
executeDispatch
ReactNativeRenderer-dev.js:715:2
executeDispatchesInOrder
ReactNativeRenderer-dev.js:737:4
executeDispatchesAndRelease
ReactNativeRenderer-dev.js:894:4
executeDispatchesAndReleaseTopLevel
ReactNativeRenderer-dev.js:902:9
选择类为td.price:visible
的{{1}}的{{1}}个元素。然后可以使用td
来迭代查询结果以执行求和:
price
:visible
答案 1 :(得分:0)
假设您有<span class="price">15 $</span>
并且某些父项<tr>
可以是display:none;
-您可以过滤所有.price
属性不是的offsetParent
个元素空。
您还可以创建一个将货币转换为数字的函数,并像这样使用它:
const currencyToNumber = currency => +(currency.replace(/[^\d.-]+/g,''));
const calculatePriceList = () => {
const TR_visible = [...document.querySelectorAll('.price')].filter(el => el.offsetParent);
const result = TR_visible.reduce((n, el) => n + currencyToNumber(el.textContent), 0);
document.querySelector('#result').textContent = result;
}
calculatePriceList(); // Do it!
.none {
display: none;
}
<table id="priceList">
<tbody>
<tr><td>Item 1</td><td><span class="price">15 $</span></td></tr>
<tr><td>Item 2</td><td><span class="price">10 $</span></td></tr>
<tr class="none"><td>Item 3</td><td><span class="price">50 $</span></td></tr>
<tr class="none"><td>Item 4</td><td><span class="price">50 $</span></td></tr>
<tr><td>Item 5</td><td><span class="price">3,100.00 $</span></td></tr>
<tr><td>TOTAL</td><td><span id="result"></span></td></tr>
</tbody>
</table>