无法将id放在Jquery插件生成的模式中的未排序列表上
Cannot put an id on an unsorted list in a Modal Generated By a Jquery Plug-in
下面是我包含的Jquery插件文件生成的模式中的html:
<div class="photobooth">
<div class="blind"></div>
<canvas ></canvas>
<div class="warning notSupported"></div>
<div class="warning noWebcam"></div>
<ul>
<li title="hue" class="hue"></li>
<li title="saturation" class="saturation"></li>
<li title="brightness" class="brightness"></li>
<li title="crop" class="crop"></li>
<li title="take picture" class="trigger"></li>
</ul>
</div>
我一直在使用下面的代码在运行时为我的标签添加一个id:
var ul = document.querySelector('.photobooth > ul');
ul.id = 'someId';
但它抛出了一个错误:
Uncaught TypeError: Cannot set property 'id' of null myid.js? njl6m7:190 (anonymous function)
我该怎么做才能在标签中添加id?我怀疑在执行脚本代码时,还没有加载模态html。有人能帮我吗?
我不太确定所有的细节,但我所做的是复制了您的代码,并包含了一个带有JavaScript的脚本标记。所以HTML看起来是这样的:
<html>
<head>
<script src="main.js"></script>
</head>
<body>
<div class="photobooth">
<div class="blind"></div>
<canvas ></canvas>
<div class="warning notSupported"></div>
<div class="warning noWebcam"></div>
<ul>
<li title="hue" class="hue"></li>
<li title="saturation" class="saturation"></li>
<li title="brightness" class="brightness"></li>
<li title="crop" class="crop"></li>
<li title="take picture" class="trigger"></li>
</ul>
</div>
</body>
</html>
JavaScript文件(main.js
)如下所示:
var ul = document.querySelector('.photobooth > ul');
ul.id = 'someId';
为了解决您的问题,我将<script>
标记移到了<body>
标记的底部。这将在主体加载后运行main.js
,如下所示:
<html>
<head>
</head>
<body>
<div class="photobooth">
<div class="blind"></div>
<canvas ></canvas>
<div class="warning notSupported"></div>
<div class="warning noWebcam"></div>
<ul>
<li title="hue" class="hue"></li>
<li title="saturation" class="saturation"></li>
<li title="brightness" class="brightness"></li>
<li title="crop" class="crop"></li>
<li title="take picture" class="trigger"></li>
</ul>
</div>
<script src='main.js'></script>
</body>
</html>
根据我的理解,jQuery相当于将script标记放在正文的末尾,它使用$(document).ready(callback)
或$(window).load(callback)
,它们做不同的事情。
不同之处在于:$(document).ready
等待DOM加载,但不等待任何图形(图像等),而$(window).load(callback)
等待一切完成。因此,如果您想使用其中任何一个,您的main.js
文件将变为:
$(document).ready(function() {
var ul = document.querySelector('.photobooth > ul');
ul.id = 'someId';
});
并且您的脚本标记将在CCD_ 10标记中。希望能成功!
我刚刚弄清楚你使用的是哪个插件。。。
由于您使用的是jQuery,因此可以执行以下操作:
$('#example').photobooth();
$('.photobooth > ul').attr('id', 'someId');
这将把该ID应用于加载时生成的photobooth小部件中的第一个ul。(其中"#example"是您的摄影棚小部件的容器ID)
jsfiddle演示
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 如何通过引用var Using DataTables来进行分页或排序
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- AngularJs对所有页面中的所有记录进行排序
- D3.js模式不适用于弧形或圆环图
- 无法将id放在Jquery插件生成的模式中的未排序列表上
- 按“宽 x 高”模式对数组进行排序
- jQuery UI排序无法使用引导模式框
- Javascript:自定义数组排序或基于模式排序
- 如何按自定义模式对字符串数组进行排序
- Bootstrap模式停止工作后,我排序投资组合