jQuery删除部分HTML并附加新的HTML

时间:2013-09-19 21:17:06

标签: javascript jquery html asp.net

我们已经得到了客户的认可,只是以任何方式为我提供保障。

如果在他们的计算机上看到cookie,我们需要修改客户端站点中的一些代码,客户端的站点是ASPX格式。我已经创建了代码的第一部分,但是我遇到的问题是:

我需要删除页面正文的最后2000个字符(左右),然后将新的HTML附加到其中。

我试过了:

$('body').html().substring(0, 10050)

但是这不起作用,我也尝试复制那个HTML(确实有用)并用新代码把它放回去,但它创建了一个运行脚本的循环。

有关我应该做什么的任何建议?遗憾的是它必须是javascript / jQuery。

////////编辑////////////

我的脚本由Google跟踪代码管理器引入,并添加到底部的页面,然后我的脚本运行,这是导致脚本循环的原因。基本上,这是设置:

我的服务器上的我的脚本使用Google跟踪代码管理器加载到客户端站点,添加到页面底部。从那里可以执行,但是当这样做时,它会创建一个添加Google跟踪代码管理器脚本的循环,导致我的代码重新添加,导致它再次重新执行。

客户不愿意做任何事情,他几乎告诉我们要弄清楚,并且不要让他的网络人员参与其中。

这是我试图编辑的网站上的代码。

<script language="JavaScript">
jQuery(function($){
$('#txtPhone').mask('(999) 999-9999? x99999');
$('#submit').click(function(){CheckForm();});
});
function CheckForm(theForm){  
if (!validRequired($('#txtfirst_name'),'First Name')){ return false; } 
if (!validRequired($('#txtlast_name'),'Last Name')){ return false; }
if (!validRequired($('#txtEmail'),'E-Mail Address')){ return false; } 
if (!validEmail($('#txtEmail'),'E-Mail Address',true)){ return false; }
if (!validPhone($('#txtPhone'),'Phone Number')){ return false; }

var dataList='fa=create_lead';
dataList += '&name=' + $('#txtfirst_name').val();
dataList += '&lastname=' +$('#txtlast_name').val();
dataList += '&email=' + $('#txtEmail').val();
dataList += '&phone=' + $('#txtPhone').val();

dataList += '&vid=' + dealerOnPoiVisitId;
dataList += '&cid=' + dealerOnPoiClientId;
dataList += '&leadType=9';
dataList += '&leadSrc=32'; ////////////////////// THIS IS WHAT I AM ATTEMPTING TO CHANGE /////////////////////////
dataList += '&contactname=' + $('#contactname').val();
dataList += '&comment=' + encodeURIComponent($('#txtComments').val());
dataList += '&dvc=' +encodeURIComponent(DealerOn_Base64.encode($('#txtfirst_name').val() + $('#txtEmail').val()));
var lid=1;
$('#submit').prop('disabled', true);
 $.ajax({
url:'/lead.aspx',
data: dataList,
dataType: 'json',
success: function(data){
$('#submit').prop('disabled', false);
lid=data.leadid;
if (lid > 1){
$('#submit').prop('disabled', false);
var jqxhr = $.post('/lead.aspx?fa=complete_lead&leadid=' + lid , function() {
window.location.href='/thankyou.aspx?name=' + $('#txtfirst_name').val() + '&lid=' + data.leadid;
});
}
},
error: function(request,error) {
$('#submit').prop('disabled', false);
}
}); 
}
</script>

这是网站上的页面:www.moremazda.com/contactus.aspx

2 个答案:

答案 0 :(得分:1)

您必须添加HTML:

var html = $('body').html().substring(0, 10050);
$('body').html(html);

请注意,执行此操作,只是随机删除HTML块并不是一种好习惯,并且可能会导致许多问题。

答案 1 :(得分:0)

从技术上讲,你应该可以这样做:

var bodyHTML = $('body');
bodyHTML.html(bodyHTML.html().substring(2000));

但正如我在上面的评论中指出的那样,这是一个非常糟糕的想法。

如果您可以访问页面的HTML,请将要替换的代码包装在可识别的标记中并将其删除。即:

<div id="tobeRemoved">Lorem Ipsum</div>
<script>
    $('#toBeRemoved').empty();
</script>

如果您无法编辑HTML,但您知道它始终是最后一个script标记,则可以执行以下操作:

var scripts = $('script');
scripts.get(-1).remove;