为每个jquery创建select选项

creating select option with for each jquery

本文关键字:select 选项 创建 jquery      更新时间:2023-09-26

我从一个表中收集了3个数组:

    allCamNames = $('#dat tr:gt(0) td:first-child').map(->
      $.trim $(this).text()
    ).get()
    allCamShareCount = $('#dat tr:gt(0) td:nth-child(6)').map(->
      $.trim $(this).text()
    ).get()
    allCamIds = $('#dat tr:gt(0) td:last-child').map(->
      $.trim $(this).text()
    ).get()

我想创建一个select option菜单,在选项中

<option value="allCamId">AllCamNames - share Count (AllCamShareCount)</option>

因为这些都是数组,所以我想把所有的值放在选项中,这样当我有整个选项时一种选择是像

<option value="345">One Cam - share Count (34)</option>

另外,我有一个TR,在映射数组中的所有值时,我想忽略这一点:在映射值时不包括tr = $(this).parents('tr')

当我点击其中一个tr时,所有三个映射函数都会运行TD,所以我想排除我点击的那个TR。

onCameraMerge = ->
  tr = ''
  needToMergeId = ''
  cameraName = ''
  allCamNames = ''
  allCamShareCount = ''
  allCamIds = ''
  $("#dat").on 'click', '.merge-cam', ->
    $('#mergeModal').modal('show')
    tr = $(this).parents('tr')
    needToMergeId = tr.find('td:nth-child(9)').text()
    cameraName = tr.find('td:nth-child(1)').text()
    $("p > #mc").append cameraName
    console.log(needToMergeId)
    allCamNames = $('#dat tr:gt(0) td:first-child').map(->
      $.trim $(this).text()
    ).get()
    allCamShareCount = $('#dat tr:gt(0) td:nth-child(6)').map(->
      $.trim $(this).text()
    ).get()
    allCamIds = $('#dat tr:gt(0) td:last-child').map(->
      $.trim $(this).text()
    ).get()
    optionsHtml = ''
    i = 0
    while i < allCamNames.length
      optionsHtml += '<option value="' + allCamIds[i] + '">' + allCamNames[i] + ' - share Count (' + allCamShareCount[i] + ')</option>'
      i++
    $('#with-cam').html '<select>' + optionsHtml + '</select>'

<tbody><tr> <td><a href="/cameras/3158">hundegaard</a></td><td>vwc200</td><td><span style="color:red;">N</span></td><td><a href="/users/1465">Gert Laumann</a></td><td><span style="color:red;">N</span></td><td>0</td><td>2014-09-02T05:57:25.082Z</td><td class="center"><i class="fa fa-trash-o delete-cam"></i> | <i class="icon-camera merge-cam"></i></td><td style="display: none;">3158</td> </tr><tr> <td><a href="/cameras/1442">will cam</a></td><td>will_34f</td><td><span style="color:red;">N</span></td><td><a href="/users/209">will Creach</a></td><td><span style="color:red;">N</span></td><td>0</td><td>2014-03-23T14:19:01.176Z</td><td class="center"><i class="fa fa-trash-o delete-cam"></i> | <i class="icon-camera merge-cam"></i></td><td style="display: none;">1442</td> </tr></tbody>

尝试创建选择

   var optionsHtml = "";
    for (var i = 0; i < allCamNames.length; i++) {
    optionsHtml += '<option value="' + allCamIds[i] + '">' + allCamNames[i] + ' - share Count (' + allCamShareCount[i] + ')</option>';
     }
    $("#idWhereYouWantToShowThisSelect").html("<select>"+optionsHtml+"</select>");

要跳过cliked TR,请使用this而不是像

$('#dat tr:gt(0) td:first-child').not(this)