Javascript list.js 额外 class 基于值
Javascript list.js extra class based on value
我的以下代码运行良好,但我仍然无法使用 class bg-success 为单元格着色,因为我使用 list.js 创建表格。
我想要的是,如果利润值小于 0,则应将 class bg-danger 添加到 var options 中的项目,如下所示(第 15 行):
<td class="profit bg-danger"></td>
有什么可能的解决方案吗?
<table class="table table-hover table-striped table-condensed results results-table results-table--active" id="footer">
<tr class="table-row-header">
<th><i class="sort" data-sort="currency">Currency</i></th>
<th><i class="sort" data-sort="profit">Profit (%)</i></th>
</tr>
<tbody class="list">
</tbody>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>
<script>
var options = {
valueNames: [ 'currency', 'profit' ],
item: '<tr><td class="currency"><td class="profit"></td></tr>'
};
var userList = new List('trades', options);
var trades = (function () {
var trades = null;
$.ajax({
'async': false,
'global': false,
'url': "trades.json",
'dataType': "json",
'success': function (data) {
trades = data;
}
});
return trades;
})();
userList.add({
currency: obj['currency'],
profit: obj['profit'].toFixed(2)+'%'
});
您可以通过添加一个函数来检查 profit
和 return 的值,一个包含 bg-danger
class 的 HTML 字符串,如果合适的话。
请参阅下面的示例。
var options = {
valueNames: ['currency', 'profit'],
item: checkProfit(profit)
};
function checkProfit(prof) {
// return HTML string based on value of profit
var str = '<tr><td class="currency"><td class="profit"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"><td class="profit bg-danger"></td></tr>';
}
return str;
}
不幸的是,当我检查页面时,下面的代码给出了以下错误:
"Uncaught ReferenceError: profit is not defined"
var options = {
valueNames: [ 'startdate', 'currency', 'channel', 'exchange', 'mode', 'buyprice', 'stoploss', 'ask', 'target', 'profit' ],
item: checkProfit(profit)
};
function checkProfit(prof) {
// return HTML string based on value of profit
var str = '<tr><td class="currency"></td><td class="profit"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"></td><td class="profit bg-danger"></td></tr>';
}
return str;
}
"profit"甚至是一个可能的变量吗?
目前完整的 javascript 看起来像这样:
<script>
var options = {
valueNames: [ 'currency', 'profit' ],
item: checkProfit(profit)
};
function checkProfit(prof) {
var str = '<tr><td class="currency"></td><td class="profit bg-success"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"></td><td class="profit bg-danger"></td></tr>';
}
return str;
}
var tradeList = new List('trades', options);
var trades = (function () {
var trades = null;
$.ajax({
'async': false,
'global': false,
'url': "trades.json",
'dataType': "json",
'success': function (data) {
trades = data;
}
});
return trades;
})();
$(function() {
var count = 0;
$.each(trades, function(_, obj) {
tradeList.add({
currency: obj['currency'],
profit: obj['profit_percentage'].toFixed(2)+'%'
});
}
});
});
</script>
我的以下代码运行良好,但我仍然无法使用 class bg-success 为单元格着色,因为我使用 list.js 创建表格。
我想要的是,如果利润值小于 0,则应将 class bg-danger 添加到 var options 中的项目,如下所示(第 15 行):
<td class="profit bg-danger"></td>
有什么可能的解决方案吗?
<table class="table table-hover table-striped table-condensed results results-table results-table--active" id="footer">
<tr class="table-row-header">
<th><i class="sort" data-sort="currency">Currency</i></th>
<th><i class="sort" data-sort="profit">Profit (%)</i></th>
</tr>
<tbody class="list">
</tbody>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>
<script>
var options = {
valueNames: [ 'currency', 'profit' ],
item: '<tr><td class="currency"><td class="profit"></td></tr>'
};
var userList = new List('trades', options);
var trades = (function () {
var trades = null;
$.ajax({
'async': false,
'global': false,
'url': "trades.json",
'dataType': "json",
'success': function (data) {
trades = data;
}
});
return trades;
})();
userList.add({
currency: obj['currency'],
profit: obj['profit'].toFixed(2)+'%'
});
您可以通过添加一个函数来检查 profit
和 return 的值,一个包含 bg-danger
class 的 HTML 字符串,如果合适的话。
请参阅下面的示例。
var options = {
valueNames: ['currency', 'profit'],
item: checkProfit(profit)
};
function checkProfit(prof) {
// return HTML string based on value of profit
var str = '<tr><td class="currency"><td class="profit"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"><td class="profit bg-danger"></td></tr>';
}
return str;
}
不幸的是,当我检查页面时,下面的代码给出了以下错误:
"Uncaught ReferenceError: profit is not defined"
var options = {
valueNames: [ 'startdate', 'currency', 'channel', 'exchange', 'mode', 'buyprice', 'stoploss', 'ask', 'target', 'profit' ],
item: checkProfit(profit)
};
function checkProfit(prof) {
// return HTML string based on value of profit
var str = '<tr><td class="currency"></td><td class="profit"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"></td><td class="profit bg-danger"></td></tr>';
}
return str;
}
"profit"甚至是一个可能的变量吗?
目前完整的 javascript 看起来像这样:
<script>
var options = {
valueNames: [ 'currency', 'profit' ],
item: checkProfit(profit)
};
function checkProfit(prof) {
var str = '<tr><td class="currency"></td><td class="profit bg-success"></td></tr>';
if (prof < 0) {
str = '<tr><td class="currency"></td><td class="profit bg-danger"></td></tr>';
}
return str;
}
var tradeList = new List('trades', options);
var trades = (function () {
var trades = null;
$.ajax({
'async': false,
'global': false,
'url': "trades.json",
'dataType': "json",
'success': function (data) {
trades = data;
}
});
return trades;
})();
$(function() {
var count = 0;
$.each(trades, function(_, obj) {
tradeList.add({
currency: obj['currency'],
profit: obj['profit_percentage'].toFixed(2)+'%'
});
}
});
});
</script>