我的任务是创建一个动态表,用于在表中相互比较不同代理的服务。根据网站大小和客户要求,我需要能够在用户从thanle标题的下拉菜单中进行选择时更改为表格内容。
我已经用最新版本更新了代码,直到现在。
我需要帮助的任务是:
表格
<html>
<head>
<title>Comparison Chart Test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
<table class="zebra" size="100%" border="1">
<thead>
<tr>
<th class="center">Broker Vergleichsliste</th>
<th>
<select class="col2 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
<option>Broker 4</option>
<option>Broker 5</option>
</select>
</th>
<th>
<select class="col3 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
<option>Broker 4</option>
<option>Broker 5</option>
</select>
</th>
<th>
<select class="col4 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
<option>Broker 4</option>
<option>Broker 5</option>>
</select>
</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Broker</strong></td>
<td class="col2 blogo"></td>
<td class="col3 blogo"></td>
<td class="col4 blogo"></td>
</tr>
<tr>
<td><strong>Reguliert</strong></td>
<td class="col2 regulated"></td>
<td class="col3 regulated"></td>
<td class="col4 regulated"></td>
</tr>
<tr>
<td><strong>securityicherheit</strong></td>
<td class="col2 security"></td>
<td class="col3 security"></td>
<td class="col4 security"></td>
</tr>
<tr>
<td><strong>Verrechnungskonto</strong></td>
<td class="col2 account"></td>
<td class="col3 account"></td>
<td class="col4 account"></td>
</tr>
<tr>
<td><strong>Mindesteinlage</strong></td>
<td class="col2 deposit"></td>
<td class="col3 deposit"></td>
<td class="col4 deposit"></td>
</tr>
<tr>
<td><strong>Software</strong></td>
<td class="col2 software"></td>
<td class="col3 software"></td>
<td class="col4 software"></td>
</tr>
<tr>
<td><strong>Handelseinheit</strong></td>
<td class="col2 einheit"></td>
<td class="col3 einheit"></td>
<td class="col4 einheit"></td>
</tr>
<tr>
<td><strong>Margin Forex</strong></td>
<td class="col2 margin"></td>
<td class="col3 margin"></td>
<td class="col4 margin"></td>
</tr>
<tr>
<td><strong>Kommission pro Halfturn</strong></td>
<td class="col2 comission"></td>
<td class="col3 comission"></td>
<td class="col4 comission"></td>
</tr>
<tr>
<td><strong>Spreads</strong></td>
<td class="col2 spread"></td>
<td class="col3 spread"></td>
<td class="col4 spread"></td>
</tr>
<tr>
<td><strong>Finanzierungskosten</strong></td>
<td class="col2 fcost"></td>
<td class="col3 fcost"></td>
<td class="col4 fcost"></td>
</tr>
<tr>
<td><strong>Orderarten</strong></td>
<td class="col2 orders"></td>
<td class="col3 orders"></td>
<td class="col4 orders"></td>
</tr>
<tr>
<td><strong>Telefonhandel</strong></td>
<td class="col2 phone"></td>
<td class="col3 phone"></td>
<td class="col4 phone"></td>
</tr>
<tr>
<td><strong>Mobile Trading</strong></td>
<td class="col2 mobile"></td>
<td class="col3 mobile"></td>
<td class="col4 mobile"></td>
</tr>
<tr>
<td><strong>Produktpalette</strong></td>
<td class="col2 products"></td>
<td class="col3 products"></td>
<td class="col4 products"></td>
</tr>
<tr>
<td><strong>Besonderheiten</strong></td>
<td class="col2 special"></td>
<td class="col3 special"></td>
<td class="col4 special"></td>
</tr>
<tr>
<td><strong>ECN / MM / STP / DMA</strong></td>
<td class="col2 art"></td>
<td class="col3 art"></td>
<td class="col4 art"></td>
</tr>
<tr>
<td><strong>Fazit</strong></td>
<td class="col2 fazit"></td>
<td class="col3 fazit"></td>
<td class="col4 fazit"></td>
</tr>
<tr>
<td><strong>Zur Webseite</strong></td>
<td class="center"><a href="/goto/forex/" target="_blank" class="button-more">Konto eröffnen</a></td>
<td class="center"><a href="#" target="_blank" class="button-more">Konto eröffnen</a></td>
<td class="center"><a href="#" target="_blank" class="button-more">Konto eröffnen</a></td>
</tr>
</tbody>
</table>
</body>
JS
<script language="JavaScript">
var data = {
"brokers":
{
"broker": [
{
"name": "Broker 1",
"blogo": "Broker1 Logo",
"regulated": "YES",
"security": "Mindep",
"account": "Konto",
"deposit": "Einlage",
"software": "Software",
"einheit": "H Einheit",
"margin": "100:1",
"comission": "Komission",
"spread": "Spreads",
"fcost": "F Kosten",
"orders": "Orderarten",
"phone": "YES/No",
"mobile": "Yes/No",
"products": "Products",
"special": "Besonderheiten",
"art": "MM/DMA",
"fazit": "Fazit"
},
{
"name": "Broker 2",
"blogo": "Broker2 Logo",
"regulated": "NO",
"security": "Mindep",
"account": "Konto",
"deposit": "Einlage",
"software": "Software",
"einheit": "H Einheit",
"margin": "200:1",
"comission": "Komission",
"spread": "Spreads",
"fcost": "F Kosten",
"orders": "Orderarten",
"phone": "YES",
"mobile": "Yes/No",
"products": "Products",
"special": "Besonderheiten",
"art": "DMA/STP",
"fazit": "Fazit"
},
{
"name": "Broker 3",
"blogo": "Broker3 Logo",
"regulated": "YES",
"security": "Mindep",
"account": "Konto",
"deposit": "Einlage",
"software": "Software",
"einheit": "H Einheit",
"margin": "Forex margin",
"comission": "Komission",
"spread": "Spreads",
"fcost": "F Kosten",
"orders": "Orderarten",
"phone": "NO",
"mobile": "Yes/No",
"products": "Products",
"special": "Besonderheiten",
"art": "ECN/MM/DMA",
"fazit": "Fazit"
},
{
"name": "Broker 4",
"blogo": "Broker4 Logo",
"regulated": "NO",
"security": "Mindep",
"account": "Konto",
"deposit": "Einlage",
"software": "Software",
"einheit": "H Einheit",
"margin": "Forex margin",
"comission": "Komission",
"spread": "Spreads",
"fcost": "F Kosten",
"orders": "Orderarten",
"phone": "Green Tick",
"mobile": "Yes/No",
"products": "Products",
"special": "Besonderheiten",
"art": "MM/DMA",
"fazit": "Fazit"
},
{
"name": "Broker 5",
"blogo": "Broker5 Logo",
"regulated": "YES",
"security": "Mindep",
"account": "Konto",
"deposit": "Einlage",
"software": "Software",
"einheit": "H Einheit",
"margin": "Forex margin",
"comission": "Komission",
"spread": "Spreads",
"fcost": "F Kosten",
"mobile": "Yes/No",
"products": "Products",
"special": "Besonderheiten",
"art": "ECN/STP",
"fazit": "Fazit"
}
]}
}
$(".selectBroker").change(function() {
var jthis = $(this);
var whichCol;
if (jthis.hasClass("col2")) {
whichCol = "col2";
}
$.each(data.brokers.broker, function(i, v) {
if (v.name == jthis.val()) {
$("td." + whichCol + ".name").html(v.name);
$("td." + whichCol + ".blogo").html(v.blogo);
$("td." + whichCol + ".regulated").html(v.regulated);
$("td." + whichCol + ".security").html(v.security);
$("td." + whichCol + ".account").html(v.account);
$("td." + whichCol + ".deposit").html(v.deposit);
$("td." + whichCol + ".software").html(v.software);
$("td." + whichCol + ".einheit").html(v.einheit);
$("td." + whichCol + ".margin").html(v.margin);
$("td." + whichCol + ".comission").html(v.comission);
$("td." + whichCol + ".spread").html(v.spread);
$("td." + whichCol + ".fcost").html(v.fcost);
$("td." + whichCol + ".orders").html(v.orders);
$("td." + whichCol + ".phone").html(v.phone);
$("td." + whichCol + ".mobile").html(v.mobile);
$("td." + whichCol + ".products").html(v.products);
$("td." + whichCol + ".special").html(v.special);
$("td." + whichCol + ".art").html(v.art);
$("td." + whichCol + ".fazit").html(v.fazit);
return;
}
});
});
</script>
</html>
答案 0 :(得分:1)
见jsfiddle。当然,您需要扩展它以完成代码。可能有更好的方法来做到这一点,但它有效,这是我在几分钟内敲定的东西。
<强> HTML 强>
<table class="table table-bordered table-striped">
<tr>
<th>
<select class="col1 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
</select>
</th>
<th>
<select class="col2 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
</select>
</th>
<th>
<select class="col3 selectBroker">
<option>Broker 1</option>
<option>Broker 2</option>
<option>Broker 3</option>
</select>
</th>
</tr>
<tr>
<td class="col1 isTotallyAwesome"></td>
<td class="col2 isTotallyAwesome"></td>
<td class="col3 isTotallyAwesome"></td>
</tr>
<tr>
<td class="col1 foo"></td>
<td class="col2 foo"></td>
<td class="col3 foo"></td>
</tr>
</table>
<强> JS 强>
var data = {
"brokers":
{
"broker": [
{
"name": "Broker 1",
"isTotallyAwesome": "yes",
"foo": "no"},
{
"name": "Broker 2",
"isTotallyAwesome": "no",
"foo": "yes"},
{
"name": "Broker 3",
"isTotallyAwesome": "true",
"foo": "no"}
]}
}
$(".selectBroker").change(function() {
var jthis = $(this);
var whichCol;
if (jthis.hasClass("col1")) {
whichCol = "col1";
}
$.each(data.brokers.broker, function(i, v) {
if (v.name == jthis.val()) {
$("td." + whichCol + ".isTotallyAwesome").html(v.isTotallyAwesome);
$("td." + whichCol + ".foo").html(v.foo);
return;
}
});
});