iT邦幫忙

0

如何用$(this)找td裡的值

我有一個table, 每一個tr裡有4個td,在第4個td裡綁定了onclick事件,想要抓td(1)和td(2)的值,相乘後再放會td(3),因為每個tr的td(3) 都要作相同的事,所以想寫一個共通的function,我的function如下,但怎麼試都是undefine,我想找每一列的數量和單價,相乘後再放入金額,想請教專家們正確的寫法

function count(){
var C01 = $(this).parent().prev().val();
console.log(C01);
}

https://ithelp.ithome.com.tw/upload/images/20180809/20028324N5tzanNseN.png

0
跟著鄉民看熱鬧
iT邦研究生 2 級 ‧ 2018-08-09 16:27:50
最佳解答

安奈…

html
onClick="count(this)"

js
function count(input){
	var one = parseInt($(input).parent().prev().prev().children().val());
	var two = parseInt($(input).parent().prev().text());
	$(input).val(one * two);
}
rogergood iT邦新手 5 級 ‧ 2018-08-09 16:46:42 檢舉

謝謝指導

0
q00153
iT邦新手 4 級 ‧ 2018-08-09 16:11:46

以下是可能的寫法,未測試...

    function count() {
		var tr        = $(this).closest('tr');
		var amount    = tr.find('td:eq(1)').find('input').val();
		var unitPrice = tr.find('td:eq(2)').text();
		var temp      = tr.find('td:eq(3)').find('input');
			amount    = parseInt(amount, 10);
			unitPrice = parseInt(unitPrice, 10);
			temp.val(amount * unitPrice);
	};

PS. 俺不是專家

rogergood iT邦新手 5 級 ‧ 2018-08-09 16:46:30 檢舉

謝謝指導

0
tacodrem
iT邦新手 5 級 ‧ 2018-08-09 16:43:51

看來似乎原本每個DOM就會有流水號
data-brackets-id
不如讓它規則化, 然後直接每次都用jquery針對id取值操作就好?
或是使用其他屬性值, 例如你的"數量"的input name已經有規則化了, 而且index是跟著onClick的dom跑, 從這下手應該也會簡單很多

rogergood iT邦新手 5 級 ‧ 2018-08-09 16:46:18 檢舉

謝謝指導

我要發表回答

立即登入回答