JS - 风格变化问题

时间:2015-09-16 15:25:34

标签: javascript

我的脚本存在问题,如果它进入ELSE意味着如果没有找到季节剧集名称然后显示按钮,则意味着显示一个按钮,但由于某种原因,它一直显示我改变我的标签的价值。它只是表明它不是一个可以找到的值。

JS:

function season1episodesChange() {

    var s1_episodes = JSON.parse(document.getElementById('s1_episodes').value);

    var selectseason1episode = document.getElementById('selectseason1episode');

    for (var i = 1; i <= s1_episodes.length; i++){
        if (selectseason1episode.value == s1_episodes[i - 1]){
            document.getElementById('season1episode' + i).style.display = 'inline-block';
        } else {
            document.getElementById(['season1episode' + i].join('')).style.display = 'none';
            document.getElementById('notuploadedyet').style.display = 'inline-block';
        }
    }

}

更新

尝试添加:

document.getElementById('notuploadedyet').style.display = 'none';

if {}位,但现在它似乎只隐藏在最后一个值或第一个值时,它将打开并保持打开所有其他值。

1 个答案:

答案 0 :(得分:1)

通过讨论,逻辑是:

循环可能的选项值,然后:

  1. 隐藏所有不匹配的元素。
  2. 如果没有元素匹配,请显示notuploaded按钮。
  3. 如果元素匹配,则显示该剧集是否存在,否则,请显示notupload按钮,因此代码可以是:
  4. function season3episodesChange() {
        var s1_episodes = JSON.parse(document.getElementById('s1_episodes').value);
        var selectseason3episode = document.getElementById('selectseason3episode');
    
        //Setup the Flag.
        var notuploaded = true;
        var targetEle;
    
        for (var i = 1; i <= s1_episodes.length; i++){
            // Get the element to show first.
            targetEle = document.getElementById('season3episode' + i);
    
            // Only check match if the element to match exist
            // So even if it match, it won't see notuploaded to false.
            if (targetEle !== null) {
               if (selectseason3episode.value == s1_episodes[i - 1]){
                    document.getElementById('season3episode' + i).style.display = 'inline-block';
    
                    // Hide the button when : there's exist an element which match the select.
                    notuploaded = false;
                } else {
                    // Hide the not matched but exist elements.
                    document.getElementById(['season3episode' + i].join('')).style.display = 'none';
                }   
            }
        }
    
        //Using the flag decide to show the notuploaded button or not;
        document.getElementById('notuploadedyet').style.display = notuploaded ? 'inline-block' : 'none';
    }