单击后将标题文本动态放入文本区域
Posted
技术标签:
【中文标题】单击后将标题文本动态放入文本区域【英文标题】:Dynamiclly putting heading text into textarea after click 【发布时间】:2014-10-13 14:54:33 【问题描述】:基本上我有一个按钮,点击后我想在选择列表中自动选择主题(它确实如此)并获取 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
)
似乎工作正常,但是当我有两个产品并且我单击第一个产品上的“订购”按钮时,它会从其中两个产品发送文本,而第二个产品上的第二个按钮什么也不做。
[编辑] 对不起 - 第二个和第一个做同样的事情。就像评论中提供的小提琴一样。
我相信我只需要添加一些东西来告诉 jquery 一个按钮单击是针对一种产品的,它应该只从该产品中获取“名称”和“序列号”,这不好吗?但我不是 jquery ninja,我找不到解决方案,这让我抓狂;/请帮忙。
【问题讨论】:
你能提供一个小提琴吗 当然jsfiddle.net/02gqLq89/18 【参考方案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 并获取其文本,然后在 .product-serial 上使用另一个 .prev 捕获产品名称并获取其文本文本。
您的错误是您捕获了所有 .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/
【讨论】:
感谢您的反馈。你认为 .siblings 比 .prev 做得更好吗?就是想。干杯 是的 .siblings 也可以解决问题。我编辑了答案并将 .prev 和 .sibling 都放入了。干杯:) 太棒了!谢谢你的时间,一位爱的兄弟:)以上是关于单击后将标题文本动态放入文本区域的主要内容,如果未能解决你的问题,请参考以下文章