【问题标题】:replace characters in html string which is loaded from external in for loop替换在for循环中从外部加载的html字符串中的字符
【发布时间】:2015-03-20 16:31:18
【问题描述】:

我试图达到的目标。在更改事件中,html 正在更改。取决于选择的值,html 片段需要加载与值一样多的时间。在这些 html 中,我需要用我的 for 循环的 var i 和其他一些 var 替换一些变量。 (用于后端 shizzle)。最终的 html 需要附加在一个 div 上。

问题是当我尝试访问 $.get() 或 $.load() 函数中的变量时,它总是使用最新的变量。当我像这样访问附加函数中的变量时,一切都按原样进行

$('.reizigers-verzekeringen').append('<p>'+title+'</p>);

加载并需要替换的示例(在**之间):

<div class="panel panel-default">
<div class="panel-heading">
    <h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapseinsurance*i*" class=""> Verzekeringen *TITLE* <i class="fa fa-plus pull-right"></i></a></h4>
</div>
</div>

完整代码...

$(".aantal-reizigers").change(function(){

    $(".reizigers-data").empty();
    $(".reizigers-verzekeringen").empty();
    var aantalReizigers = $(".aantal-reizigers").val();;
    var title="";
    var openclosedata="";
    var opencloseverzekeringen="";
    for (var i = 1; i <= aantalReizigers; i++) {

        if(i == 1){
            title = "hoofdreiziger";
            openclosedata='<div id="collapse'+i+'" class="panel-collapse in" style="height: auto;">';
            opencloseverzekeringen='<div id="collapseinsurance'+i+'" class="panel-collapse in" style="height: auto;">';
        }
        else{
            title = "reiziger "+i;
            openclosedata='<div id="collapse'+i+'" class="panel-collapse collapse">';
            opencloseverzekeringen='<div id="collapseinsurance'+i+'" class="panel-collapse collapse">';
        }

        $.get("booking/verzekeringen.html", function(html){
            html.replace("*TITLE*", title);<!--title is always the latest--> 
        })
        $(".reizigers-verzekeringen").append(
            '<p>'+title+'</p>'<!--this is going fine-->         
        );
    };
});

【问题讨论】:

  • 您能否在“booking/verzekeringen.html”中发布您的 html - 取决于您的数量,我不会执行获取,而只是在循环中添加 HTML。看看你能不能用你目前拥有的东西做一个 JS Fiddle。
  • 我会尝试,但它有很多 html,如果我直接将它放在循环中,那么整个时间都是“意外令牌非法”
  • JSFiddle 没有代码。只是一个协作会议的邀请。
  • 借口;我第一次自己做一个 jsFiddle。所以现在显示的标题应该是在 TITLE 位置外部加载的 HTML 中的标题...jsfiddle.net/q0jy260L

标签: javascript jquery html replace load


【解决方案1】:

这是一种方法:

将您的 html 放入变量中。

例如:

var htmlTemplate = "your html"

然后在你的循环中,而不是调用 get 只是使用 html。这是您更新的 JSFiddle 以演示我的意思。然后你可以简单地去更新标题和你还需要什么。

http://jsfiddle.net/loanburger/q0jy260L/1/

【讨论】:

  • 您可以将html变量放在一个函数中,然后在循环中调用它并传入您要设置的标题和其他值。然后简单地用值构建字符串并返回它。
  • 但问题是 .replace 不起作用...有什么想法吗?
  • 它正在工作! htmlTemplate = htmlTemplate.replace("TITLE", title);
猜你喜欢
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 2020-10-16
  • 2011-02-05
  • 1970-01-01
相关资源
最近更新 更多