Javascript jQuery变量未使用replaceWith更新
我试图用一个变量替换DOM。但是,当我的ajax运行时,它并没有将新值赋给变量 知道为什么变量值没有被替换吗?我在如下所示写出DOM Id时工作,但在用变量替换它时不起作用 这是我的代码,它可以工作Javascript jQuery变量未使用replaceWith更新,javascript,jquery,Javascript,Jquery,我试图用一个变量替换DOM。但是,当我的ajax运行时,它并没有将新值赋给变量 知道为什么变量值没有被替换吗?我在如下所示写出DOM Id时工作,但在用变量替换它时不起作用 这是我的代码,它可以工作 $(document).ready(){ var url = '/Home/GetBookingsTicker'; $('#button').on('click',function(){ $.ajax({ url: url,
$(document).ready(){
var url = '/Home/GetBookingsTicker';
$('#button').on('click',function(){
$.ajax({
url: url,
cache: false,
type:"GET",
success: function (response) {
$('#marqueeTop').replaceWith(response);
setColors($('#one').val());
},
failure: function () {
alert("Failed to update!")
}
});
}
}
不起作用的代码
$(document).ready(){
var url = '/Home/GetBookingsTicker';
var $one = $('#one');
$('#button').on('click',function(){
$.ajax({
url: url,
cache: false,
type:"GET",
success: function (response) {
$('#marqueeTop').replaceWith(response);
setColors($one.val());
},
failure: function () {
alert("Failed to update!")
}
});
}
}
剃刀
<div id="marqueeTop">
@Html.HiddenFor(m => m.one)
<span>
@foreach(var item in Model.procBookings){
<label class="setTopColors">
@Html.DisplayFor(x => item.GroupName)
@Html.DisplayFor(x => item.Sales).....
</label>
}
</span>
</div>
@Html.HiddenFor(m=>m.one)
@foreach(模型中的var项目。procBookings){
@DisplayFor(x=>item.GroupName)
@Html.DisplayFor(x=>item.Sales)。。。。。
}
如果我对#一的假设是正确的,这可能会起作用:
$(document).ready(){
var url = '/Home/GetBookingsTicker';
var one = $('#one').val();
$('#button').on('click',function(){
$.ajax({
url: url,
cache: false,
type:"GET",
success: function (response) {
$('#marqueeTop').replaceWith(response);
setColors(one);
},
failure: function () {
alert("Failed to update!")
}
});
}
}
第二个块函数无权访问变量$1。您可能需要了解异步AJAX请求是如何工作的。要访问$one,您需要成功实现回调。在您执行ajax请求之前是否存在#one
?或者它可能存在,但现在您保留了对旧对象的引用?如@Danny said-是#one
在#marqueeTop
中吗?#one
在哪里?在请求之前的DOM中,或在返回的响应中预期?$(“#one”)
在ajax之前声明。现在我大声说出来,因为它包含了我没有否决的旧价值,但这不起作用。one
的值在ajax调用后保持不变。例如,它以值5开始,我的ajax运行变量one
保持为5。DOM会更改,但变量不会更改。如果您希望从ajax响应中得到一个新值#one
,那么您的第二个代码块将无法按预期工作。如果在ajax之前已经分配了该变量,那么在replaceWith
之后,该元素将不再存在。只有新的#一"将以其新的价值存在。是的,这是有道理的。谢谢你花时间帮忙!