Javascript jQuery选择多个按钮
我有一个p标签列表,每个标签旁边都有一个按钮。 单击该按钮,我想在另一个div中显示特定的p标记 我的主要问题是:我不知道如何使这两个元素相互关联,因此当我单击某个按钮时,只有按钮旁边的p标记会受到影响。我可以用一个按钮和一个段落来完成,但我不知道如何用多个按钮来完成 这是我的HTML(单击一个按钮,将该p标记移动到另一个div框):Javascript jQuery选择多个按钮,javascript,jquery,loops,foreach,Javascript,Jquery,Loops,Foreach,我有一个p标签列表,每个标签旁边都有一个按钮。 单击该按钮,我想在另一个div中显示特定的p标记 我的主要问题是:我不知道如何使这两个元素相互关联,因此当我单击某个按钮时,只有按钮旁边的p标记会受到影响。我可以用一个按钮和一个段落来完成,但我不知道如何用多个按钮来完成 这是我的HTML(单击一个按钮,将该p标记移动到另一个div框): 项目1添加 项目2添加 项目3添加 提前感谢您您可以将按钮放在标记内,然后调用父项()方法,方法如下: HTML: 更好的方法是将标记指定为inivudual
项目1添加
项目2添加
项目3添加
提前感谢您您可以将按钮放在
标记内,然后调用父项()
方法,方法如下:
HTML:
更好的方法是将标记指定为inivudual类样式,如下所示:
<p class="i1">item 1</p><button class="i1">add</button>
<p class="i2">item 2</p><button class="i1">add</button>
$('button').click(function(){
var c = $(this).getClass();
$("."+c).do_any_thing_u_want();
});
第1项添加
第2项添加
$(“按钮”)。单击(函数(){
var c=$(this.getClass();
$(“+c).做你想做的事();
});
将按钮置于
标记内,然后调用父()方法,方法如下:
HTML:
更好的方法是将标记指定为inivudual类样式,如下所示:
<p class="i1">item 1</p><button class="i1">add</button>
<p class="i2">item 2</p><button class="i1">add</button>
$('button').click(function(){
var c = $(this).getClass();
$("."+c).do_any_thing_u_want();
});
第1项添加
第2项添加
$(“按钮”)。单击(函数(){
var c=$(this.getClass();
$(“+c).做你想做的事();
});
prev
是您要查找的命令:
$('button').prev().appendTo($('#items2'))
文档:
prev
是您要查找的命令:
$('button').prev().appendTo($('#items2'))
文档:您可以使用jQuery prev()获取前面的p标记,如下所示:
var products = [];
$('#items button').click(function () {
var x = $(this).prev().html();
products.push(x);
console.log(products);
});
您可以使用jQuery prev()获取前面的p标记,如下所示:
var products = [];
$('#items button').click(function () {
var x = $(this).prev().html();
products.push(x);
console.log(products);
});
我假设您正在设置innerHTML=text。尝试innerHTML+=text。是的,我使用的是innerHTML,但我没有连接它。我正在将添加的项推送到一个空数组中,然后每次添加一个新项时都显示该数组。我可以查看您的所有代码吗?当然,这是我目前为止的jquery:var products=array()$(“#items按钮”)。单击(函数(x,el){$('p')。每个(函数(i,元素){var x=element.innerHTML;products.push(x);$(“#items2').html(产品);});我假设您正在设置innerHTML=text。尝试innerHTML+=text。是的,我使用的是innerHTML,但我没有连接它。我正在将添加的项推送到一个空数组中,然后每次添加一个新项时都显示该数组。我可以查看您的所有代码吗?当然,这是我目前为止的jquery:var products=array()$(“#items按钮”)。单击(函数(x,el){$('p')。每个(函数(i,元素){var x=element.innerHTML;products.push(x);$(“#items2').html(产品);});谢谢,很好用。如果我想将所选项目保留在第一个div中(因为我注意到appendTo移动了实际项目),该怎么办?太好了!非常感谢你的帮助。另外,为了让事情变得更复杂……如果我不想使用prev()函数怎么办?@tickerll如果你不想使用
prev
,那么你就会对问题施加任意限制。您能解释一下为什么不想使用prev
?正确的解决方案将取决于您的需求。@Dave我想我想看看是否有办法用更多的逻辑和更少的jquery函数来完成这项任务。这些是我限制使用的函数:fadeIn()/fadeOut(),push(),each(),html(),val(),attr(),这可能需要更多的工作和代码,但是challenging@tickerll听起来还是很武断。充其量,您可以将parent()
添加到该列表中,迭代父节点的子节点,直到找到当前节点,存储循环索引,再次迭代直到到达上一个索引,然后应用于该节点。这是丑陋和低效的,但几乎满足您的要求。谢谢,它工作得很好。如果我想将所选项目保留在第一个div中(因为我注意到appendTo移动了实际项目),该怎么办?太好了!非常感谢你的帮助。另外,为了让事情变得更复杂……如果我不想使用prev()函数怎么办?@tickerll如果你不想使用prev
,那么你就会对问题施加任意限制。您能解释一下为什么不想使用prev
?正确的解决方案将取决于您的需求。@Dave我想看看是否有一种方法可以通过更多的逻辑和更少的jquery函数来实现这个任务。这些是我限制使用的函数:fadeIn()/fadeOut(),push(),each(),html(),val(),attr(),这可能需要更多的工作和代码,但是challenging@tickerll听起来还是很武断。充其量,您可以将parent()
添加到该列表中,迭代父节点的子节点,直到找到当前节点,存储循环索引,再次迭代直到到达上一个索引,然后应用于该节点。这是丑陋和低效的,但几乎满足您的要求。谢谢,它工作得很好。如果我想将所选项目保留在第一个div中(因为我注意到appendTo移动了实际项目),该怎么办?@tickerll您可以使用clone
进行复制,因此.prev().clone().appendTo(…)
谢谢,它工作得很好。如果我想将所选项目保留在第一个div中(因为我注意到appendTo移动了实际项目),该怎么办?@tickerll您可以使用克隆
进行复制,因此.prev().clone().appendTo(…)