无法访问jQuery创建的元素
Unable to access element created by jQuery
在我的列表中创建一个新元素后,我想在其中插入内容。我知道我可以在创建时这样做,但问题是创建后无法与元素交互。
var buttoncounter = 5;
for (i = 0; i <= (newtrack_information.length - 1); i++) {
$("#tracklist").append("<li class='"ui-state-default ui-sortable-handle'"><span><a id=" + buttoncounter + "'" href='"#'"></a></span></li>");
$("#" + buttoncounter).html(newtrack_information[i].trackname + " - " + newtrack_information[i].artist);
buttoncounter++;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ol id="tracklist">
<li class="ui-state-default"><span><a id="0" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="1" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="2" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="3" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="4" href="#"></a></span>
</li>
</ol>
如果我试图用找到相应的元素
console.log($(document.body).find("#" + buttoncounter));
我得到这个:
[prevObject: m.fn.init[1], context: body, selector: "#tracklist #5"]
编辑:此外,如果我试图将选择器更改为"#tracklist#5",它也不起作用。
我认为您的代码中遗漏了一个"
。使用...id='"" +
而不是...id=" +
。为了避免这种情况,我建议在以下代码中同时使用单引号'
和双引号"
:
$('#tracklist').append('<li class="ui-state-default ui-sortable-handle"><span><a id="' + buttoncounter + '" href="#"></a></span></li>');
更改后,您可以将newtrack_information
中的项目添加到您的列表中。
var buttoncounter = 5;
var newtrack_information = [
{trackname: 1, artist: 'bob' },
{trackname: 2, artist: 'jason' },
]
for (i = 0; i <= (newtrack_information.length - 1); i++) {
$("#tracklist").append("<li class='"ui-state-default ui-sortable-handle'"><span><a id='"" + buttoncounter + "'" href='"#'"></a></span></li>");
$("#" + buttoncounter).html(newtrack_information[i].trackname + " - " + newtrack_information[i].artist);
buttoncounter++;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ol id="tracklist">
<li class="ui-state-default"><span><a id="0" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="1" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="2" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="3" href="#"></a></span>
</li>
<li class="ui-state-default"><span><a id="4" href="#"></a></span>
</li>
</ol>
您没有更改buttoncounter的值。它将始终将您的值插入相同的id中。
var buttoncounter = 5;
for (i = 0; i <= (newtrack_information.length - 1); i++) {
$("#tracklist").append("<li class='"ui-state-default ui-sortable-handle'"><span><a id=" + buttoncounter + "'" href='"#'"></a></span></li>");
$("#" + buttoncounter).html(newtrack_information[i].trackname + " - " + newtrack_information[i].artist);
buttoncounter = buttoncounter - 1;
}
试试下面的一个,看看它是否能解决你的问题。。
相关文章:
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 根据对多个数组唯一的元素创建一个新数组
- 使用Jquery从所有元素创建一个字符串
- 如何从html表单数组元素创建javascript数组
- 在 Backbone.js 中为集合中的一个元素创建详细信息页面
- 动态 DOM 元素创建
- 每 5 个元素创建一个新对象
- 下划线 从对象元素创建对象数组
- 从 2 个特定元素创建网格
- 维基百科如何从
- mongodb:如何为每个数组元素创建_id
- 如何为每 5 个元素创建一个 DIV
- 如何为自定义聚合物元素创建方法并在主应用程序中调用它
- jQuery元素创建,值传递
- 我无法基于实际的 HTML 元素创建类
- 在 jQuery 中迭代数组时,每隔一个元素创建新列表
- Mouseover/out难题上的JS元素创建/删除
- 为Angular指令创建的元素创建名称
- Javascript/jquery从具有相同rel的元素创建数组
- 如何使用DOM元素创建表单的副本