Ajax调用后元素未定义

时间:2014-05-03 12:48:44

标签: javascript jquery ajax

我通过ajax在中心div中加载内容。当页面第一次加载时,我显示来自数据库的行。每行显示在DIV中,每个DIV的id动态创建,如<div id="div_[record's ID]">

我已经包含了javascript函数,可以在该div上的onClick事件上更改该div的颜色。到目前为止一切正常。

如果用户点击左侧导航栏中的类别,我会在该中心div上调用ajax后加载记录。新创建的div的id是动态创建的,与第一次加载页面时创建的id相同,但现在当用户点击该div时,元素未定义。

Ajax是异步的,但我根本没有触及那个javascript函数,它必须读取在页面加载时创建的元素以及ajax调用后的元素。

这是Ajax调用的代码:

$.ajax({
url: window.base_url+'back/home/contentAjax/'+listing_status+'/'+type_id+'/',
data: { listing_status : listing_status, type_id : type_id },
dataType: 'text',
type: 'post',
success: function (j) {
$('.center').html(j);
}
});

此div是动态创建的:

<form id=frmNode name=frmNode>

<div id="div_<?php echo $counter; ?>">  
<input  type="checkbox" value="<?php echo $listing_row->nid; ?>" id="nid" name="nid[]" onclick="markSelectedNode(<?php echo $counter; ?>);" />

</form>

只有在调用ajax后才会填充该div。表格标签保持不变。

这是读取该元素的javascript代码:

警报(document.frmNode.nid [selectedId]);

实际上我得到的是div元素,但输入是未定义的。

1 个答案:

答案 0 :(得分:0)

我遇到了错误的地方。实际上在div中没有​​正确创建表单标签。它是在主div内部启动并在主div之后关闭的。 这就是javascript无法识别的原因 document.frmNode.nid [selectedId]