我在从此ajax调用返回HTML时遇到问题。它在FF中工作正常,但在IE中为alert(result.html());
这是代码。有任何想法吗?感谢!!!
IE中的errors变量也为空。
此外,我在.find()
中使用的元素仍然没有区别,因为它仍然是空的。
function update_price() {
$.ajax({
url: $("form[name='MainForm']").attr('action'),
data: $("form[name='MainForm']").serialize() + '&btnupdateprice.x=0&btnupdateprice.y=0',
type: 'POST',
cache: false,
success: function (response) {
var errors = $(response).find("#listOfErrorsSpan");
var result = $(response).find(".colors_productprice:eq(0)");
alert(result.html());
$(".colors_productprice:eq(0)").replaceWith('<font class="colors_productprice">' + result.html() + '</font>');
$('#listOfErrorsSpan').replaceWith('<span id="listOfErrorsSpan">' + errors.html() + '</span>');
}
});
}
$(function () {
$("select[name^='SELECT___'],input[name^='SELECT___'][type='radio']").each(function () {
$(this).change(function () {
update_price();
});
});
$("a[href^='javascript:change_option']").each(function () {
$(this).click(function () {
var result_href = $(this).attr('href').match(/\'(.*?)\'/)[1];
var result_val = $(this).attr('href').match(/\,(.*?)\)/)[1];
change_option(result_href, result_val);
update_price();
return false;
});
});
});
以下是Ajax调用中的HTML。
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<b><font class="pricecolor colors_productprice"><span class="price_name"><font class="text colors_text"><b>Our Price: </b></font></span>
<span class="price1">$505.00</span>
</font>
</b>
</tr>
</table>
在FF中我得到了警报。
<span class="price_name"> Price with added options: </span><span class="price1">$505.00</span>
答案 0 :(得分:0)
您可能在此代码上有错误
var errors=$(response).find("#listOfErrorsSpan");
var result = $(response).find(“。colors_productprice:eq(0)”); 警报(result.html());
我不确定$(响应)的选择器是否未定义
答案 1 :(得分:0)
你的find语句中的eq(0)可能是问题所在。只需说find(“。colors_productprice”)就足够了。
答案 2 :(得分:0)
您没有</td>
不确定这是根本问题,但FF和IE在quirksmode中的工作方式不同,尤其是在动态插入元素时。