选择所有不返回任何值

时间:2014-05-18 22:20:09

标签: javascript html

我需要这方面的帮助而且我不知道我做错了什么,我需要在我选择值" a"以及不使用多个值的选项时显示所有内容。我很感激。

<body>
  <select id="options" multiple>
    <option value="a">Seleccione un año</option>
    <option value="a y2014">2014</option>
    <option value="a y2013">2013</option>
    <option value="a y2012">2012</option>
</select>

<table>
    <tr class="a y2014"><td>2014</td></tr>
    <tr class="a y2014"><td>2014</td></tr>
    <tr class="a y2014"><td>2014</td></tr>
    <tr class="a y2013"><td>2013</td></tr>
    <tr class="a y2013"><td>2013</td></tr>
    <tr class="a y2013"><td>2013</td></tr>
    <tr class="a y2012"><td>2012</td></tr>
    <tr class="a y2012"><td>2012</td></tr>
    <tr class="a y2012"><td>2012</td></tr>
</table>

</body>

使用Javascript:

window.onload=function()
{
    var select = document.getElementById("options"),
    forEach = Array.prototype.forEach;

    select.addEventListener("change", function()
    {
        forEach.call(document.getElementsByTagName("tr"), function(tr)
        {
            tr.style.display = tr.className == select.value ? "" : "none";
        });
    }, false);
}

1 个答案:

答案 0 :(得分:0)

正如@jacksondc指出的那样,你希望它包含select.value。所以:

变化:

tr.style.display = tr.className == select.value ? "" : "none";

要:

tr.style.display = tr.className.indexOf(select.value)!=-1 ? "" : "none";