Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery变量未使用replaceWith更新_Javascript_Jquery - Fatal编程技术网

Javascript jQuery变量未使用replaceWith更新

Javascript jQuery变量未使用replaceWith更新,javascript,jquery,Javascript,Jquery,我试图用一个变量替换DOM。但是,当我的ajax运行时,它并没有将新值赋给变量 知道为什么变量值没有被替换吗?我在如下所示写出DOM Id时工作,但在用变量替换它时不起作用 这是我的代码,它可以工作 $(document).ready(){ var url = '/Home/GetBookingsTicker'; $('#button').on('click',function(){ $.ajax({ url: url,

我试图用一个变量替换DOM。但是,当我的ajax运行时,它并没有将新值赋给变量

知道为什么变量值没有被替换吗?我在如下所示写出DOM Id时工作,但在用变量替换它时不起作用

这是我的代码,它可以工作

$(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
之后,该元素将不再存在。只有新的#一"将以其新的价值存在。是的,这是有道理的。谢谢你花时间帮忙!