1

我有一个表格,每行有 1 个按钮,单击该行中显示的按钮税将应用于客户端,我需要向最终用户显示一些指示。为此,我想在单击时更改按钮 css(color, txt ect.)。下面是代码 -

<table class="data report_table">       
                        <tbody>
                        <c:forEach var="taxVO" items="${taxVo}" varStatus="item">
                        <tr class="${item.index % 2 == 0 ? 'odd gradeX' : 'even gradeC'}">                          
                            <td><c:out value="${taxVO.taxName}" /></td>
                            <td><input type="button" class="btn-icon" value="Apply" id="applyTaxButton" onClick="applyTax('${taxVO.taxId}');"></input>
                            </td>   
                        </tr>
                        </c:forEach>
                        </tbody>
                    </table>

我正在使用的jquery是-

function applyTax(taxIdValue)   {
    $('#taxId').val(taxIdValue);
    $(this).$('#applyTaxButton').css("background-color","yellow");
}

但我收到错误 - 未捕获的类型错误:对象 [对象对象] 没有方法“$”。有人可以让我知道如何解决吗?

4

2 回答 2

2

jsFiddle 演示

HTML ID 应该是唯一的,因此您应该让所有按钮都具有相同的 ID。为此目的使用类属性。但是,要简单地更改选择的上下文,正确的语法是:

$(selector, context);

更好的方法是完全删除该onclick属性,并在 jQuery 中完全处理事件:

$(function() {
    $('.report_table').on('click', '.btn-icon', function() {
        $(this).css('background-color', 'yellow');
        $('.btn-icon').not(this).css('background-color', 'transparent');
    });
});​
于 2012-10-14T17:38:20.390 回答
1
<input id="taxId" type="text" /><br />

<input onclick="applyTax(this, '1');" value="Apply" class="btn-icon btn-small btn-grey" type="button" />
<input onclick="applyTax(this, '2');" value="Apply" class="btn-icon btn-small btn-grey" type="button" />
<input onclick="applyTax(this, '3');" value="Apply" class="btn-icon btn-small btn-grey" type="button" />


<script>
function applyTax(btn, taxIdValue)   {
    $('#taxId').val(taxIdValue);
    $(btn).css("background-color","yellow");
}
</script>

演示:http: //jsfiddle.net/NFGkj/

但最好使用jquery 事件绑定。

于 2012-10-14T17:48:54.883 回答