Bootstrap 如何知道元素是否有弹出窗口?

How does Bootstrap know if an element has popover?

我理解当我们在 html 中的元素上添加 popover 但当我们使用 javascript 时:

 $("#element").popover({ // popover details }); 

html 代码中的 #element 没有变化。当 html 代码中没有任何符号时,如何使用弹出窗口引用所有元素?

文档建议您将 [data-toggle="popover"] 添加到带有弹出框的元素,并通过该属性引用它们。但是,如果您不这样做而只是手动初始化 popover,插件会为您添加 bs.popover 数据(通过 .data(),而不是 .attr(),这就是为什么您在元素中看不到它们)。

$("#popover").popover({
  title: "Wow" 
});

console.log($("#popover").data("bs.popover")); //see the console

http://www.bootply.com/vlpB0I0LcI

至于如何引用它们有点复杂,因为您必须像@Tim 建议的那样用弹出窗口保持元素列表,或者只用 bs.popover 数据解析整个节点树。不过添加属性会简单得多。