javascript - 为什么使用 '<div/>' 作为 JQuery UI 对话框方法中的对象有效?

标签 javascript jquery jquery-ui

考虑以下创建 JQuery UI 对话框的代码:

    function showBox()  {
      $('<div />').html('This is my dialog').dialog({
         buttons: {
           'Okay': function(){
              $(this).dialog('close');
           },
          'Return': function(){ 
              $(this).dialog('close'); 
           }
         },
         close: function(){ $(this).dialog('destroy').remove(); },
         modal: true,
         title: 'My Dialog Title',
         width: 350
       });
    }

以及 HTML 页面正文中的一个简单链接:

<a href="#" onClick="showBox()">Click to open a box</a>

该代码可以完美地启动 JQuery UI 对话框。

我的问题是:为什么使用 <div />作为$()参数实际上生成了一个工作框?

我一直用<div></div>作为我的$()对话框的参数。在 HTML 中,div 是需要开始和结束标记的 block 级元素,那么为什么只使用 <div />一个有效的选项?

最佳答案

因为就是这样jQuery旨在工作:

In most cases, jQuery creates a new element and sets the innerHTML property of the element to the HTML snippet that was passed in. When the parameter has a single tag (with optional closing tag or quick-closing) — $( "<img />" ) or $( "<img>" ), $( "<a></a>" ) or $( "<a>" ) — jQuery creates the element using the native JavaScript createElement() function.

因此,在 jQuery 中创建元素时,所有这些都是等效的:

  • <div></div>
  • <div />
  • <div>

关于javascript - 为什么使用 '<div/>' 作为 JQuery UI 对话框方法中的对象有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571854/

相关文章:

jquery - 循环作为背景图像不起作用

jquery UI Slider 单击更新 slider 最大值

Javascript 嵌套解构语法

javascript - 有没有办法在网络应用程序中以编程方式播放音频?

javascript - 鼠标输入无法正常工作

javascript - jQuery UI 奇怪的按钮问题

jquery - 在禁用的文本区域上添加点击事件(jquery + ui)

javascript - 导航到 Javascript 对象中的上一个和下一个项目

javascript - 给 <option> 标签一个类? API 调用不起作用

javascript - 两个选择选项上的 onChange 事件