当“选择”在下拉列表中更改时,按ID填充表格TD

时间:2012-10-10 08:50:28

标签: javascript html html-table innerhtml

我的任务是创建一个动态表,用于在表中相互比较不同代理的服务。根据网站大小和客户要求,我需要能够在用户从thanle标题的下拉菜单中进行选择时更改为表格内容。

我已经用最新版本更新了代码,直到现在。

我需要帮助的任务是:

  • 脚本只侦听col2
  • 如何将图像添加到阵列博客?
  • 默认情况下每列加载一个项目eq Broker 1,Broker 2,Broker 3

表格

<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>

1 个答案:

答案 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;
        }
    });

});