我正在尝试仅创建2个简单的框,并允许用户从1个框中选择数据,然后将其复制到第二个框。如果第二个框上已有相同的内容,请在后面附加一些简单的文本。

当该项目不在第二个框中时,它基本上可以工作。但是,在这种情况下,我无法将数据追加到文本中。

这是一个简单的例子。

https://jsfiddle.net/9mbgw20e/5/

<div id="inventory">
  <div class='item'>
    <span>Apple</span>
  </div>
  <div class='item'>
    <span>Pear</span>
  </div>
</div>
<hr>
<div id="selected">

</div>


// bring the items from inventory to selected
// if selected is found, add some text to the back of it

$('.item').on('click', function() {
  var h = $(this)[0].outerHTML;

  var found = false;
  var foundId = '';
  if ($('#selected').children().length < 1) {
    // if there's nothing selected, just straight add this
    return $('#selected').prepend(h);
  }

  $('#selected').children().each(function() {
    if ($(this).find('span').text() == $(h).find('span').text()) { // if there is already one in selected div
      console.log('Found duplicated.');
      found = true;
      foundId = $(this)[0].outerHTML;
    }
  });

  if (!found) {
    // if item is not in selected div, add
    $('#selected').prepend(h);
  } else {
    // if item is in selected div, add some text to it
    $(foundId).append('1, ');
  }
});


第一次单击可以,但是第二次单击后,没有任何反应。

最佳答案

将foundID更改为此foundId = $(this);

JSFiddle

09-26 07:18