Javascript JQuery:如何将字符串附加到函数中,使其仅对特定的div id执行操作?
根据下面的函数,如果我有多个表:listbox1、listbox2、listbox3、listbox4等,以及对应2个表的多个按钮:btnAdd1、btnAdd2、btnRemove1、btnRemove2等。在我不需要硬编码和创建多个函数的情况下,如何使这个过程足够动态?如何将字符串连接到div idJavascript JQuery:如何将字符串附加到函数中,使其仅对特定的div id执行操作?,javascript,jquery,Javascript,Jquery,根据下面的函数,如果我有多个表:listbox1、listbox2、listbox3、listbox4等,以及对应2个表的多个按钮:btnAdd1、btnAdd2、btnRemove1、btnRemove2等。在我不需要硬编码和创建多个函数的情况下,如何使这个过程足够动态?如何将字符串连接到div id $(document).ready(function() { $('#btnAdd1').click(function(e) { $('#listBox1 >
$(document).ready(function() {
$('#btnAdd1').click(function(e) {
$('#listBox1 > option:selected').appendTo('#listBox2');
e.preventDefault();
});
$('#btnAddAll1').click(function(e) {
$('#listBox1 > option').appendTo('#listBox2');
e.preventDefault();
});
$('#btnRemove1').click(function(e) {
$('#listBox2 > option:selected').appendTo('#listBox1');
e.preventDefault();
});
$('#btnRemoveAll1').click(function(e) {
$('#listBox2 > option').appendTo('#listBox1');
e.preventDefault();
});
});
您可以通过执行
$('#div_'+myString)
将字符串连接到jquery选择器。您可以通过执行$('#div_'+myString)
将字符串连接到jquery选择器。我对您试图实现的目标进行了假设。我认为您正在尝试创建两个列表,在它们之间移动选项。此代码笔使用CSS类以及HTML5数据属性将按钮分配到相应的列表。因此,按钮可以告诉代码它们想做什么,而不是告诉按钮要做什么。看看这支代码笔,让我知道这是否是你想要做的
HTML
<div class="content">
<div class="col">
<select size="15" class="from list">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
<option>Option 5</option>
<option>Option 6</option>
</select>
</div>
<div class="col">
<button class="move" data-from=".from" data-to=".to">Add</button>
<button class="moveall" data-from=".from" data-to=".to">Add All</button>
<button class="move" data-from=".to" data-to=".from">Remove</button>
<button class="moveall" data-from=".to" data-to=".from">Remove All</button>
</div>
<div class="col">
<select size="15" class="to list">
</select>
</div>
</div>
Javascript
$(document).ready(function () {
$('.move').click(function() {
var from = $(this).attr('data-from');
var to = $(this).attr('data-to');
$(from + ' > option:selected').appendTo(to);
$(from + ' > option:selected').remove();
});
$('.moveall').click(function() {
var from = $(this).attr('data-from');
var to = $(this).attr('data-to');
$(from + ' > option').appendTo(to);
$(from + ' > option').remove();
});
});
我继续做了一个假设,关于你想要达到的目标。我认为您正在尝试创建两个列表,在它们之间移动选项。此代码笔使用CSS类以及HTML5数据属性将按钮分配到相应的列表。因此,按钮可以告诉代码它们想做什么,而不是告诉按钮要做什么。看看这支代码笔,让我知道这是否是你想要做的 HTML
<div class="content">
<div class="col">
<select size="15" class="from list">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
<option>Option 5</option>
<option>Option 6</option>
</select>
</div>
<div class="col">
<button class="move" data-from=".from" data-to=".to">Add</button>
<button class="moveall" data-from=".from" data-to=".to">Add All</button>
<button class="move" data-from=".to" data-to=".from">Remove</button>
<button class="moveall" data-from=".to" data-to=".from">Remove All</button>
</div>
<div class="col">
<select size="15" class="to list">
</select>
</div>
</div>
Javascript
$(document).ready(function () {
$('.move').click(function() {
var from = $(this).attr('data-from');
var to = $(this).attr('data-to');
$(from + ' > option:selected').appendTo(to);
$(from + ' > option:selected').remove();
});
$('.moveall').click(function() {
var from = $(this).attr('data-from');
var to = $(this).attr('data-to');
$(from + ' > option').appendTo(to);
$(from + ' > option').remove();
});
});
什么部门id?你说表格和按钮是动态生成的按钮,或者你能依赖那些id吗?对不起,我指的是表格和输入id?不,欢迎使用按钮。唯一ID在扩展时会引起问题,所以应该考虑使用类。那么您将需要一个函数。诀窍是知道按下哪个按钮调用函数。在JQ中查看
$(此)
。看这把小提琴。一旦知道是什么触发了该函数,就可以使用find()或next()遍历DOM以附加listWhat div id?你说表格和按钮是动态生成的按钮,或者你能依赖那些id吗?对不起,我指的是表格和输入id?不,欢迎使用按钮。唯一ID在扩展时会引起问题,所以应该考虑使用类。那么您将需要一个函数。诀窍是知道按下哪个按钮调用函数。在JQ中查看$(此)
。看这把小提琴。一旦知道是什么触发了函数,就可以使用find()或next()遍历DOM以附加列表。如何将myString传递给函数?或者多个参数/strings您将调用helloWorld(myString)
,并且您的函数看起来像函数helloWorld(string)
您可以添加任意多个参数,即函数(a、b、c、d);首先谢谢你抽出时间。那么,我想添加onClick?我以为jquery会根据id来获取它$(文档).ready(函数(a,b,c,d){$('#btnAdd')。单击(函数(e){$('#listBox1>选项:选中')。附加到('#listBox2');e.preventDefault(););我无法理解此消息的输出,因为您的4个单击事件做了一些不同的事情。请查看@Cory的评论。Cory的建议很接近,正在进行中。谢谢您。您如何将myString传递给函数?或者您将调用的多个参数/stringshelloWorld(myString)
您的函数看起来像函数helloWorld(string)
您可以添加任意数量的参数,即函数(a,b,c,d);首先感谢您的时间。因此,我会添加onClick?我以为jquery会根据id?$(文档)来选择它。就绪(函数(a,b,c,d){$('#btnAdd')。单击(函数(e){$(“#listBox1>选项:选中”).appendTo(“#listBox2”);e.preventDefault();};我无法理解这篇文章的输出,因为您的4次点击事件做了一些不同的事情。请查看@Cory的评论。Cory的建议很接近,正在进行中。谢谢您ahervinThank you Zac,但是如果我在一个表单上有多个from和to表,会发生什么?不用担心,很高兴能够提供帮助。别忘了将此标记为您的答案并上传te如果你喜欢;)谢谢你,扎克,但是如果我在一张表格上有多个“从”和“到”表格,会发生什么呢?不用担心,很高兴能提供帮助。别忘了将此标记为你的答案,如果你喜欢,请向上投票;)