单击后动态将标题文本放入textarea

时间:2014-08-20 09:42:11

标签: jquery variables button text textarea

基本上我有一个按钮,点击后我想自动选择选择列表中的主题(它确实如此)并取出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忍者,它让我发疯,我无法找到解决方案; /请帮忙。

1 个答案:

答案 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+" "); 
})

工作小提琴:http://jsfiddle.net/02gqLq89/23/