基本上我有一个按钮,点击后我想自动选择选择列表中的主题(它确实如此)并取出h3和h5文本并将其放入textarea。
这是我现在的代码:
$('.order-button').click(function(){
var productName = $('.product-name').text();
var productSerial = $('.product-serial').text();
$('#msgsubject').val($(this).data('val')).trigger('change'); // choosing subject
$('#message').val($('#message').val()+" "+productName+" "+productSerial+" "); // putting text into textarea
})
似乎工作正常,但当我有两个产品,并且我点击"订购"第一个按钮,它从其中两个发送文本,其中第二个产品上的第二个按钮什么也不做。
[编辑]对不起 - 第二个与第一个做同样的thig。就像在评论中提供的小提琴一样。
我相信我只需要添加一些东西告诉jquery一个按钮点击是针对一个产品,它应该采取" Name"和" Serial"从那个产品只是不是很好吗?但我不是jquery忍者,它让我发疯,我无法找到解决方案; /请帮忙。
答案 0 :(得分:1)
它是这样发送你的,因为类名是相同的,你没有指定使用哪一个。
这是更新后的小提琴:http://jsfiddle.net/02gqLq89/19/
$('.order-button').click(function(){
var productSerial = $(this).prev('.product-serial');
var serialtext = productSerial.text();
var productName = $(productSerial).prev('.product-name').text();
$('#msgsubject').val($(this).data('val')).trigger('change'); // choosing subject
$('#message').val($('#message').val()+" "+productName+" "+serialtext+" ");
})
这是新代码。如你所见,我用它来捕获哪个按钮我点击然后我用.prev来捕获之前的.product-serial并获取它的文本然后另一个.prev在.product-serial上捕获产品名称并得到它文本。
你的错误是你捕获了所有.product-serial和.product-name而不仅仅是预期的
您也可以使用.siblings而不是.prev
$('.order-button').click(function(){
var productSerial = $(this).siblings('.product-serial').text();
var productName = $(this).siblings('.product-name').text();
$('#msgsubject').val($(this).data('val')).trigger('change'); // choosing subject
$('#message').val($('#message').val()+" "+productName+" "+productSerial+" ");
})