未捕获的类型错误:无法读取属性'outerHTML'为null
Uncaught TypeError: Cannot read property 'outerHTML' of null
我试图获取表的内容,并将其放在新窗口中打印,但我总是收到以下错误:该表位于一个modal中,并通过ajax函数返回到modal dynamcly:
这是ajax函数:
function view(id){
var html;
$.ajax({
url: "<?php echo site_url('admin/prescription/view_prescription_ajax') ?>/"+id,
type: 'POST',
dataType: 'html',
success:function(data){
html = data;
},
async: false
});
$('#view .modal-body').html(html);
$('#view').modal('show');
}
这是这个代码返回的htmt
$data='';
$prescription = $this->prescription_model->get_prescription_by_id($id);
$template= $this->notification_model->get_template();
$data.='<table width="100%" border="0" id="printTable" class="pt" style="padding-bottom:0px; height:100%;" >
<thead>
<tr>
<td>
<table width="100%" style="border-bottom:1px solid;">
<tr>
<td style="line-height:110%">'.$template->header.'
</td>
</tr>
</table>
</td>
</tr>
</thead>
<tbody>
<tr>
<td >
<table width="100%">
<tr>
<td width="40%"><b>'.lang('name').'</b> : '.substr($prescription->patient,0,20).'</td>
<td width="18%"><b>'.lang('age').'</b> : '. date("Y")-$prescription->dob .' Years</td>
<td ><b>'.lang('sex').'</b> : '. $prescription->gender.'</td>
<td ><b>'.lang('id').'></b> :'.$prescription->prescription_id.'</td>
<td ><b>'.lang('date').'</b> : '. date("d-m-y", strtotime($prescription->date_time)).'</td>
</tr>
</table>
</td>
</tr>
<tr height="100%">
<td valign="top">
<table width="100%" border="0">
<tr>
<td width="51%" valign="top">
<table width="80%" border="0">
<tr>
<td width="100%">
<table border="0" >
<tr>
<td><b>Medical History</b></td>
</tr>';
$c = json_decode($prescription->case_history_id);
if(is_array($c)){
foreach($c as $new){
$data.='<tr><td>'.$dis = $new .'</td></tr>';
}
}else{
$data.='<tr><td>'.$c.'</td></tr>';
}
$data.='<tr>
<td>'. $prescription->case_history.'</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border="0">
<tr>
<td><b>Frequency</b></td>
</tr>
<tr>
<td>'.$prescription->frequency.'</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="51%">';
$d = json_decode($prescription->tests);
//echo '<pre>'; print_r($d);'</pre>';
if(!empty($d[0])){
$data.='<table border="0" width="100%">
<tr>
<td><b>'.lang('test').'</b></td>
</tr>';
$ins = json_decode($prescription->test_instructions);
if(is_array($d)){
$i=1;
foreach($d as $key => $new){
$data.='<tr><td>'.$i.'. '.$d[$key] .'<td></tr>';
if(!empty($ins[$key])){
$data.='<tr><td><p style="padding-left:14px;"><small>('.$ins[$key] .')</small></p><td></tr>';
}
$i++;}
}else{
$data.='<tr><td>'.$i.' '.$d.'<td></tr>';
$data.='<tr><td><p style="padding-left:14px;"><small>( '.$ins.' )</small></p><td></tr>';
}
$data.='</table>';
}
$data.='</td>
</tr>
</table>
</td>
<td valign="top">
<table border="0" width="100%" >
<tr>
<td><p><span style="font-size:26px"><b>R</span ><sub style="font-size:18px">x</b></sub></p></td>
</tr>';
$d = json_decode($prescription->medicines);
$ins = json_decode($prescription->medicine_instruction);
if(is_array($d)){
$i=1;
foreach($d as $key => $new){
if(!empty($d[$key]))
$data.='<tr><td style="padding-left:18px;">'.$i.'. '.$d[$key] .'<td></tr>';
$data.='<tr><td><p style="padding-left:32px;"><small>'.@$ins[$key] .'</small></p><td></tr>';
$i++;}
}else{
$data.='<tr><td style="padding-left:18px;">'.$i.' '.$d.'<td></tr>';
$data.='<tr><td><p style="padding-left:32px;"><small>'.$ins.'</small></p><td></tr>';
}
$data.='<tr>
<td>';
if(!empty($prescription->remark)){
$data.='<table width="100%" border="0">
<tr>
<td><b>'.lang('remark').'</b></td>
</tr>
<tr>
<td>'.$prescription->remark.'</td>
</tr>
</table>';
}
$data.='</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="border-top:1px solid;" class="aligncenter">
'.$template->footer.'
</td>
</tr>
</tfoot>
</table>
<div class="form-group no-print">
<div class="row no-print">
<div class="col-sm-4 pull-right">
<a class="btn btn-default yes-print no-print" id="print_p" onClick="printData();" style="margin-right: 5px;"><i class="fa fa-print"></i>'.lang('print').'</a>
<a href="http://medicalfrequencycentre.com/drsystem/admin/prescription/pdf/'.$prescription->id.' id="pdf" class="btn btn-primary no-print" style="margin-right: 5px;"><i class="fa fa-download"></i>'.lang('generate_pdf').'</a>
</div>
</div>
</div>
';
echo $data;
这是javascript
function printData()
{
var divToPrint=document.getElementById("printTable");
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
您应该在成功时调用打印数据,因为在稍后将dom内容添加到dom后,事件不会绑定。也不要忘记从按钮属性中删除onClick="printData"
function view(id){
var html;
$.ajax({
url: "<?php echo site_url('admin/prescription/view_prescription_ajax') ?>/"+id,
type: 'POST',
dataType: 'html',
success:function(data){
html = data;
$("#print_p").on("click", function(e){ printData(); });
},
async: false
});
$('#view .modal-body').html(html);
$('#view').modal('show');
}
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在asp.net中更改outerHTML属性
- 为什么HTML属性中的(')在document.documentElement.outerHTML中呈现为(
- 未捕获的类型错误:无法读取属性'outerHTML'为null
- 如何解决未捕获的类型错误:无法设置属性'outerHTML'为null