0

私は現在、一度に 1 列の tds を強調表示できるようにしたいプロジェクトに取り組んでいます。他の列にハイライトがない場合は、どの列も許可されます。前もって感謝します。以下は私のコードです。

<style>
    .highlight { background:yellow; }
</style>

<script>

$(function() {
    $('td').click(function() {
        alert(event.target.id);
       $(this).toggleClass("highlight");
    });
});
</script>
<%@ page import="java.util.*" %>
<%
ArrayList<String> rooms = new ArrayList<String>();
rooms.add("GSR_2-1");
rooms.add("GSR_2-2");
rooms.add("GSR_2-3");
rooms.add("GSR_2-4");
ArrayList<String> time = new ArrayList<String>();
time.add("0800");
time.add("0830");
time.add("0900");
time.add("0930");
%>
<table width="100%" border="1">
<%
    for(int x = 0 ; x<time.size() ; x++){
        out.println("<tr>");
        for(int y = 0 ; y<rooms.size() ; y++){
            out.println("<td id="+rooms.get(y) +">");
            out.println(rooms.get(y)+" "+time.get(x));
            out.println("</td>");
        }
        out.println("</tr>");
    }
%>

4

2 に答える 2

2

これはあなたが欲しいですか?

$('td').click(function() {
    var $td = $(this);
    $td.closest('table').find('tr').each(function() {
        $(this).find('td:eq('+$td.index()+')').toggleClass("highlight");
    });
});

動作デモ。

于 2012-09-23T07:49:56.487 に答える
0

私があなたなら、すべての列にクラスを使用して、次のようにします。

HTML

<html>

    <head>

        <title>Classes</title>

    </head>

    <body>

        <table>

            <tr>

                <td class='col1'>11</td>
                <td class='col2'>12</td>

            </tr>
            <tr>

                <td class='col1'>21</td>
                <td class='col2'>22</td>

            </tr>

        </table>

    </body>

</html>
​

CSS

.highlight {

    /* your style here*/
    background: #00aa00; /* demo highlight*/

}
td {

    padding: 2px;

}
​

jQuery

$("table tr td").on("click", function(){

    var clss = $(this).attr('class');
    var selector = "table tr td." + clss;
    if (clss.match(/highlight/)) {
        $(".highlight").removeClass("highlight");
    } else if ($(".highlight").size() == 0) {
        $(selector).addClass("highlight");
    } 
});​

編集:これが動作中のjsFiddleです:

http://jsfiddle.net/qUcPK/2/

于 2012-09-23T08:43:39.943 に答える