我在輸入html元素上有一個javascript處理程序。輸入的HTML元素可能很多..關鍵是每當我在輸入html元素上插入一個值時我想在該元素上添加一個類,以便更改具有值的輸入的背景顏色。現在我在做:** $('this.seat_box')。toggleClass('selected'); ********但是這會影響所有擁有該類的元素。有沒有辦法在輸入元素的處理函數上傳遞一個參數,以某種方式引用?我試圖通過爭論或類似的說法: 的onchange =「bc.seatBoxHandleEvent(‘輸入’,這一點),沒有這些工作......如何在元素上插入值時切換輸入元素的類
任何幫助表示讚賞
的HTML代碼。!
<div class="bus-builder-seat-box-container" id="dynamic-bus-builder-1">
<input id="posA100" type="text" class="seat_box" onchange="bc.seatBoxHandleEvent()">
<input id="posA101" type="text" class="seat_box" onchange="bc.seatBoxHandleEvent()">
</div>
我對JavaScript驗證下面的代碼:
bc.seatBoxHandleEvent = function() {
bc.checkInput();
var seatNumberFirstFloor = $('#dynamic-bus-builder-1');
if (seatNumberFirstFloor && seatNumberFirstFloor.valueOf()) {
var leftStreaming = (event.target.id);
var rightStreaming = 'posB1' + leftStreaming.substring(5, 7);
document.getElementById(rightStreaming).innerHTML = event.target.value;
}
}
bc.checkInput = function() {
var targetValue = event.target.value;
var id = event.target.id;
var classOfInput = event.target.classList;
if (targetValue !== 8 && targetValue !== 0 && (targetValue < 48 || targetValue > 57)) {
console.log('valid number');
console.log(classOfInput);
**$('this.seat_box').toggleClass('selected');********
}
else {
console.log('invalid character');
}
}
'$( 'this.seat_box')'無厘頭用於任何目的,因爲'this'是一個關鍵字,它不應該在引號中。試試'$(this).toggleClass('selected')'。 – nnnnnn
謝謝,但它不會工作..我現在試了它,我已經嘗試過...... –
哦,對不起,我剛剛意識到所有的函數都是一個叫做'bc'的對象的方法,重新叫他們'這''會是'bc'。在這種情況下,您需要將'event'對象作爲參數傳遞,並使用'event.target'來獲取事件發生元素的引用。鑑於你正在使用jQuery,你有沒有理由不使用jQuery綁定事件處理程序? – nnnnnn