Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery选择多个按钮_Javascript_Jquery_Loops_Foreach - Fatal编程技术网

Javascript jQuery选择多个按钮

Javascript jQuery选择多个按钮,javascript,jquery,loops,foreach,Javascript,Jquery,Loops,Foreach,我有一个p标签列表,每个标签旁边都有一个按钮。 单击该按钮,我想在另一个div中显示特定的p标记 我的主要问题是:我不知道如何使这两个元素相互关联,因此当我单击某个按钮时,只有按钮旁边的p标记会受到影响。我可以用一个按钮和一个段落来完成,但我不知道如何用多个按钮来完成 这是我的HTML(单击一个按钮,将该p标记移动到另一个div框): 项目1添加 项目2添加 项目3添加 提前感谢您您可以将按钮放在标记内,然后调用父项()方法,方法如下: HTML: 更好的方法是将标记指定为inivudual

我有一个p标签列表,每个标签旁边都有一个按钮。 单击该按钮,我想在另一个div中显示特定的p标记

我的主要问题是:我不知道如何使这两个元素相互关联,因此当我单击某个按钮时,只有按钮旁边的p标记会受到影响。我可以用一个按钮和一个段落来完成,但我不知道如何用多个按钮来完成

这是我的HTML(单击一个按钮,将该p标记移动到另一个div框):


项目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(…)