[英]Unable to access element created by jQuery
After the creation of a new element in my list, I want to insert content into it. 在列表中创建新元素后,我想在其中插入内容。 I know I could do this while creating, but the problem is that I cannot interact with the element after creation. 我知道我可以在创建时执行此操作,但是问题是创建后无法与该元素进行交互。
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>
If I try to find the respective element with 如果我尝试找到与
console.log($(document.body).find("#" + buttoncounter));
I get this: 我得到这个:
[prevObject: m.fn.init[1], context: body, selector: "#tracklist #5"]
EDIT: Also, if I try to change the selector to "#tracklist #5" - it doesn't work either. 编辑:另外,如果我尝试将选择器更改为“ #tracklist#5”,则也将不起作用。
I think you've missed a "
in your code. Use ...id=\\"" +
instead of ...id=" +
. 我认为您在代码中错过了一个"
。请使用...id=\\"" +
代替...id=" +
。 To avoid that, I recommend to use both single quotations '
and double quotations "
in the code like: 为避免这种情况,我建议在代码中同时使用单引号'
和双引号"
:
$('#tracklist').append('<li class="ui-state-default ui-sortable-handle"><span><a id="' + buttoncounter + '" href="#"></a></span></li>');
After altering that, you can add items from newtrack_information
to your list. 更改之后,您可以将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>
You are not changing the value of buttoncounter. 您没有更改buttoncounter的值。 It will always insert your values into the same id. 它将始终将您的值插入相同的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;
}
Try the below one see if it is solving your problem.. 请尝试以下一种,看看它是否可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.