Javascript JQuery:如何将字符串附加到函数中,使其仅对特定的div id执行操作?

Javascript 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 >

根据下面的函数,如果我有多个表:listbox1、listbox2、listbox3、listbox4等,以及对应2个表的多个按钮:btnAdd1、btnAdd2、btnRemove1、btnRemove2等。在我不需要硬编码和创建多个函数的情况下,如何使这个过程足够动态?如何将字符串连接到div id

    $(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传递给函数?或者您将调用的多个参数/strings
helloWorld(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如果你喜欢;)谢谢你,扎克,但是如果我在一张表格上有多个“从”和“到”表格,会发生什么呢?不用担心,很高兴能提供帮助。别忘了将此标记为你的答案,如果你喜欢,请向上投票;)