我有一个HTML框,可以在其中输入一个值,然后将10%添加到每一边以创建范围。如果某行的column值不在该范围内,则将其隐藏。我想找到最高的未隐藏值,并将其值分配给bestrange
。然后,我想检查bestrangeprice
价格下所有隐藏的行,看看它们的得分是否比bestrangemark
更高,如果显示,则显示它们。
我已经得到的代码的第一部分直到分配̶̶b̶e̶s̶t̶r̶a̶n̶g̶e̶
̶并且具有多数的码,以检查是否另一行高则̶̶b̶e̶s̶t̶r̶a̶n̶g̶e̶
。我只需要的代码分配̶̶b̶e̶s̶t̶r̶a̶n̶g̶e̶
̶通过比较未隐藏行值栏,找出最高和一些小的修正等我是否需要̶̶(̶e̶)̶
̶后̶̶f̶u̶n̶c̶t̶i̶o̶n̶
̶或者什么̶I̶'̶m̶应该̶d̶o̶。
请参阅下面的更新2。
<input type="number" id="myPrice" placeholder="Enter amount.." title="Type in a amount" min="0">
$(document).ready(function() {
$("#myPrice").on("keyup", function() { //new input
if ($(this).val() === '') {
$("#myTable tr").show();
return;
}
priceLow = $(this).val() * 0.9; // - 10%
priceHigh = $(this).val() * 1.1; // + 10%
$("#myTable tr td:nth-child(2)").each(function(e) {
var value = parseFloat(this.textContent.replace('$', '')); //convert price to float
if (value >= priceLow && value <= priceHigh) { //check if in range
$(this).closest('tr').removeClass('discarded').show(); //show
} else {
$(this).closest('tr').addClass('discarded').hide(); //hide
}
})
$("#myTable tr:not(.discarded)").each(function(e) {
var mark = parseFloat($(this).find("td:nth-child(3)").text());
var price = parseFloat($(this).find("td:nth-child(2)").text().replace('$', ''));
var value = parseFloat($(this).find("td:nth-child(4)").text());
if (value > bestrange) {
bestrangeprice = price;
bestrangemark = mark;
}
});
$("#myTable tr").each(function(e) {
var mark = parseFloat($(this).find("td:nth-child(3)").text());
var price = parseFloat($(this).find("td:nth-child(3)").text().replace('$', ''));
if (price <= bestrangeprice && mark > bestrangemark) { //check if beat bestrange
$(this).closest('tr').removeClass('discarded').show(); //show row
})
});
});
https://facebook.github.io/react-native/docs/flatlist
我添加了一些内容以从非隐藏行中获取值以找到bestrange
,但是我不确定如何比较每一行以找到“最佳”。
我想我现在已经拥有了所有需要的代码,但是上面的小提琴可以看到一个例子。
我想不通最后一点,所有帮助将不胜感激。
如果您需要更多信息,请告诉我。
谢谢
答案 0 :(得分:1)
您的js代码缺少花括号,您正在调用“ onkeyup =“ myPriceFunction()”(未定义)。我更新了小提琴,它似乎工作正常。
<input type="number" id="myPrice" onkeyup="myPriceFunction()" placeholder="Enter amount.." title="Type in a amount" min="0">
从js绑定事件时,不需要上面的onkeyup
$("#myPrice").on("keyup", function() {
});
答案 1 :(得分:0)
存在一些逻辑和格式问题。
所有解决方案都可以在fiddle
中找到。