Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获得;无法读取属性';左';“未定义”的定义;在动态创建html时,保留.position()_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获得;无法读取属性';左';“未定义”的定义;在动态创建html时,保留.position()

Javascript 获得;无法读取属性';左';“未定义”的定义;在动态创建html时,保留.position(),javascript,jquery,html,Javascript,Jquery,Html,我正在ready上动态创建一些HTML元素,对从ajax检索到的一些数据进行排序,并将它们添加到中。 例如下面的代码 <div id='wrapper'> <ul class='nav nav-tabs list'> <li class="box"><a class='filter-select'>Brokers</a></li> </ul> </div> 现在我的问

我正在ready上动态创建一些HTML元素,对从ajax检索到的一些数据进行排序,并将它们添加到
中。 例如下面的代码

<div id='wrapper'>
    <ul class='nav nav-tabs list'>
        <li class="box"><a class='filter-select'>Brokers</a></li>
    </ul>
</div>

现在我的问题是,如果我动态创建HTML,那么上述js问题中的
.position().left
无法读取未定义的
的属性'left'。但是如果我硬编码HTML,它就会工作。我可能做错了什么

问题是您通过javascript或jquery添加的元素在DOM树中不存在

因此,
$('.list')
是未定义的,因为
class=“list”
不存在

要修复它,必须“重新加载”
DOM树


Reference:

表示调用
getLeftPosi()
时元素不存在。您必须展示如何创建HTML以及何时调用函数。最可能的问题是您执行Ajax调用,而不是等待它完成。您是如何创建动态元素的?我是说给我们看看密码。
var getLeftPosi = function () {
    var left = $('.list').position().left + 11.5;
    return left;
};