javascript - 高亮颜色切换

标签 javascript jquery

我有这个代码,我想使用,但它的颜色切换功能不起作用。它仅以绿色突出显示。我也想使用其他颜色。我希望这很容易解决,并且有人可以告诉我该怎么做。谢谢。我知道代码不整洁,但我希望你仍然可以在jquery中看到问题。我不是这方面的专家。谢谢。 https://jsfiddle.net/msruauvL/

// JavaScript Document
$(document).ready(function() {

$('.selector').each(function() {
    $(this).on('click', check); 
});
    $('.all').each(function() {
       $(this).on('click', all); 
    });

function all(event) {

        if($(this).is(':checked')){  $("input:checkbox:not(:checked)",$(this).parents('form')).not(this).prop("checked","checked");
    } else {
        $("input:checkbox(:checked)",$(this).parents('form')).not(this).prop("checked","");
    }

    //$('.selector').prop("checked", this.name === "SelectAll");

    check(event);
}

function check(event) {
    var checked = $(".selector:checked").map(function () {
        return this.name
    }).get()
    $('td').removeClass("highlight").filter(function () {
        return $.inArray($(this).text(), checked) >= 0
    }).addClass("highlight")
    if ($(this).is(".selector"))
        $('.all').not(this).prop("checked", false)

}


 $( "#Hidden").on( "click", function() {
        $(".selector").toggle();
    });


});

最佳答案

发生这种情况是因为 css 文件中的突出显示类显式地将背景颜色设置为绿色。

这是一个快速修复,我不依赖于类,而是依赖于 td 元素的背景颜色。

// JavaScript Document
$(document).ready(function() {

$('.selector').each(function() {
    $(this).on('click', check); 
});
    $('.all').each(function() {
       $(this).on('click', all); 
    });

function all(event) {
    
        if($(this).is(':checked')){  $("input:checkbox:not(:checked)",$(this).parents('form')).not(this).prop("checked","checked");
    } else {
        $("input:checkbox(:checked)",$(this).parents('form')).not(this).prop("checked","");
    }
    
    //$('.selector').prop("checked", this.name === "SelectAll");
    
    check(event);
}

function check(event) {
    var checked = $(".selector:checked").map(function () {
        return this.name
    }).get()
    $('td').css('background', '#fff').filter(function () {
        return $.inArray($(this).text(), checked) >= 0
    }).css('background', $('#nextColor').val())
    if ($(this).is(".selector"))
        $('.all').not(this).prop("checked", false)

}

    
 $( "#Hidden").on( "click", function() {
        $(".selector").toggle();
    });
 

});
@charset "utf-8";
/* CSS Document */
*
{
    margin: 3;
    padding: 3;
}

html, body, .Container
{
    height: 98%;
}

    .Container:before
    {
        content: '';
        height: 100%;
        float: left;
    }

.Header
{
    margin-bottom: 10px;
    background-color: #fff;
}
.Content
{
    position: relative;
    z-index: 1;
}
    .Content:after
    {
        content: '';
        clear: both;
        display: block;
    }

.Wrapper
{
	position: absolute;
	width: 500px;
	height: 100%;
}
    .Wrapper > div
    {
        height: 100%;
    }

.LeftContent
{
    background-color: white;
    overflow: auto;
	width: 600px;
}

.mainContent
{
    background-color: white;
    margin-left: 800px;
	 
}

.highlight {background:#9ac99d;}

.selector {
    display: none;
}


tr.border_bottom td {
  border-bottom:1pt solid black;
}


	table.tableizer-table {
	border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
    border-collapse:collapse; /* Keeps the table lines like in excel */
    table-layout:fixed;   /* Fits the table in the screen */
} 
.tableizer-table td {
	padding: 6px;
	margin: 6px;
	border: 2px solid #ccc;
}
.tableizer-table th {
	background-color: #FFFFFF; 
	color: #FFF;
	font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3><input id="nextColor" type="color" value="#9ac99d"> Parameters:</h3>
 
 <div>
 

 
 <form id="form1" name="form1" method="post" action="">
             <label>                
                    <input type="checkbox" name="SelectAll" class="all" />All</label><label>
                    <input type="checkbox" name="5" class="selector" />5</label><label>
                    <input type="checkbox" name="7" class="selector" />7</label><label>
                    <input type="checkbox" name="9" class="selector" />9</label><label>
                    <input type="checkbox" name="10" class="selector" />10</label><label>
                    <input type="checkbox" name="19" class="selector" />19</label><label>
                    <input type="checkbox" name="23" class="selector" />23</label><label>
                    <input type="checkbox" name="35" class="selector" />35</label><label>
                    <input type="checkbox" name="37" class="selector" />37</label><label>
                    <input type="checkbox" name="40" class="selector" />40</label><label>
                    <input type="checkbox" name="43" class="selector" />43</label><label>
                    <input type="checkbox" name="44" class="selector" />44</label><label>
                    <input type="checkbox" name="46" class="selector" />46</label><label>
                    <input type="checkbox" name="51" class="selector" />51</label><label>
                    <input type="checkbox" name="52" class="selector" />52</label><label>
                    <input type="checkbox" name="54" class="selector" />54</label><label>
                    <input type="checkbox" name="55" class="selector" />55</label><label>
                    <input type="checkbox" name="60" class="selector" />60</label><label>
                    <input type="checkbox" name="61" class="selector" />61</label><label>
                    <input type="checkbox" name="62" class="selector" />62</label><label>
                    <input type="checkbox" name="70" class="selector" />70</label><label>
                    <input type="checkbox" name="74" class="selector" />74</label><label>
                    <input type="checkbox" name="75" class="selector" />75</label> </form> 
                    </div>
         <div>
         
                        
       <table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>2</th><th>3</th><th>18</th><th>20</th><th>22</th><th>29</th><th>30</th><th>32</th><th>33</th><th>34</th><th>38</th><th>39</th><th>51</th><th>56</th><th>57</th><th>60</th><th>61</th><th>63</th><th>72</th><th>75</th><th>77</th><th>80</th></tr></thead><tbody>
 <tr><td>2</td><td>3</td><td>6</td><td>9</td><td>12</td><td>14</td><td>15</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>26</td><td>28</td><td>30</td><td>42</td><td>48</td><td>55</td><td>61</td><td>75</td><td>77</td></tr>
</tbody></table>             
                    
                     </div>

我基本上替换的是 $('td').removeClass("highlight")$('td').css('background', '#fff') 重置背景颜色,然后 .addClass("highlight") by .css('background', $('#nextColor').val()) 为他们提供在色域上选择的任何背景颜色。

关于javascript - 高亮颜色切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708650/

相关文章:

javascript - Webpack服务器的路由无法获取/页面

javascript - Kendo UI Grid 重新加载数据错误

php - 如何将动态 php 页面放入 jquery Accordian "active"部分

Javascript - 确保输入至少有一个数字

jquery ajax 函数不工作

javascript - 根据用户选择过滤 JSON 嵌套数组

javascript - svgPanZoom:仅使用鼠标中键进行平移

javascript - 如何正确实现使用 jQuery UI 自动完成小部件的表单?

javascript - 从 Google 应用程序脚本中的 UrlFetchApp.Fetch() 获取响应并在 Logger 上打印

javascript - 未捕获的类型错误 : Object #<error> has no method 'call'