获取 Bootstrap 弹出元素的 ID

Get ID of the element that was Bootstrap popover-ed

我有以下 Javascript 代码,表示 html 个元素的字符串:

html = '<tr>' +
'<td class="editMap" data-mode="option" data-wsid="'+row.option_id+
'" data-map="'+row.mapping_id+'" id="option-'+row.option_id+'">'+
'<span title="Options Mapping" data-toggle="popover" data-placement="left"style="cursor:pointer;">'+value+
'</span></td>'+'</tr>';

html 变量实际上在一个循环中。我还有显示特定 div

详细信息的弹出代码
$('[data-toggle="popover"]').popover({
  html: true, 
  container: body,

  content: function() {
    return $('#popover-content').html();
  }
});

<div id="popover-content" class="row" style="display:none;">
  <input  class="btn btn-xs btn-info" type="submit" value="Yes" style="display: inline-block; vertical-align: top;"/>
  <input  class="btn btn-xs btn-primary" type="submit" value="No" style="display: inline-block; vertical-align: top;"/>
</div>

我想要的是实际获取被弹出的元素的 id,在本例中由 "option-'+row.option_id+'" 表示。我尝试了以下方法,但似乎不起作用:

$('[data-toggle="popover"]').each( function() {
  $(this).popover({ 
    html : true,
    content: this.id,
    console.log(this.id);
  });
});

请帮我拿下id。这可能是一个初级问题,但我是 Javascript

的新手

您需要使用 $(this) 而不是仅 this.

访问当前元素
$('[data-toggle="popover"]').each( function() {
      //try doing console log out of popover.
      console.log($(this).attr('id'));
      $(this).popover({ 
                        html : true,
                        content: $(this).attr('id')
                     });
});

$() 是 jQuery 构造函数。

this 是对调用的 DOM 元素的引用。

$(this)中,您只需将this作为参数传递给$(),这样您就可以调用jQuery方法和函数。

因此,您的代码将如下所示:

$('[data-toggle="popover"]').each( function() {
    $(this).popover({ 
        html : true,
        content: $(this).attr('id'),
        console.log(this.id);
    });
});