如何从选定的html中删除节点,而不从当前页面中删除它?

时间:2015-12-22 17:42:28

标签: javascript jquery html css dom

我正在使用jquery从我的页面抓取HTML并在新窗口中打开它进行打印。我必须自定义一些样式,以便在打印时格式化。我的主页上有一个表function get_events_data($limit='',$offset='',$type='calendar',$option=1) { $search_input = $this->session->userdata('search_input'); $this->db->set_dbprefix(''); $this->db->_protect_identifiers=false; db_select('mu.fullname',false); db_select('mu.username'); db_select('me.event_id'); db_select('me.user_id'); db_select('me.user_type'); db_select('me.event_name'); db_select('me.url_id'); db_select('me.event_details'); db_select('me.is_payment_required'); db_select('mec.remarks'); db_select('mec.fee'); db_select('mec.max_pax'); db_select('mec.bal_pax'); db_select('mec.deleted_status'); db_select('mec.calendar_id'); db_select('mec.event_state_id'); db_select('mec.venue_location'); db_select('mec.dt_start,mec.dt_end'); db_select('mec.approval_status,mec.deleted_status'); db_where('mec.dt_start >= ',time()); db_where('mec.dt_start <=',strtotime(MAX_TIME_EVENT_CALENDAR_DISPLAY)); db_join('m_event_calendar mec','mec.event_id=me.event_id','left'); db_join('m_users mu','mu.user_id=me.user_id','left'); if($type=='event_list' || $type == 'url_id'): $this->db->group_by('FROM_UNIXTIME(mec.dt_start, "%Y-%M-%d")'); endif; db_order('FROM_UNIXTIME(mec.dt_start)','asc'); if($this->curuser): db_where('(me.user_id = '.$this->curuser['user_id'].' or me.approval_status = '.EVENT_APRROVAL_STATUS_APPROVED.')'); else: db_where('me.approval_status',EVENT_APRROVAL_STATUS_APPROVED); endif; db_where('mec.deleted_status',EVENT_DELETED_STATUS_NO); if(!empty($search_input)): $this->db->like('me.event_name', $search_input,'match'); $this->db->or_like('me.venue_location', $search_input,'match'); endif; if($limit == '' || $offset == ''): $sql = db_get('m_event_list me'); else: $sql = db_get('m_event_list me', $limit, uri_segment($offset)); endif; if($option==1): $array = $sql->result_array(); else: $array = $sql; endif; $this->db->set_dbprefix('m_'); if($array): return $array; endif; } 来定义列的宽度,但是当我打印它时,我隐藏了最后一列(因为它有一个按钮,打印输出不需要,并且按钮在打印时抛出格式),但列的宽度仍然是由colgroup引起的。如果我从表中删除colgroup,非隐藏列填充宽度,格式是完美的。我不知道如何删除打印窗口上的colgroup节点,而不是从原始窗口删除它(这不可能发生)。这是我的打印代码:

<colgroup>

我想从内容中删除colgroup,或者从newWin中删除它,但我不知道如何执行此操作。 $(“colgroup”)。remove()将从原始页面删除它,而不是从新窗口删除它。

2 个答案:

答案 0 :(得分:3)

您可以将display:none隐藏在打印样式表中,而不是删除。

@media print {
    ...
    .colgroup {
         display:none;
    }
}

答案 1 :(得分:1)

你应该这样做:

var newPage = $('#newWin'); //Or whatever the new page will be
var content = $("#pdf-area").clone();

newPage.html(content.find('.colgroup').remove() );

诀窍是克隆内容而不是抓取原始内容并将其存储在变量中,然后您可以根据需要修改它而不更改原始内容。