将动态参数传递给.load()/ $ .ajax()

时间:2013-06-18 05:55:29

标签: jquery html ajax

对不起,我发现我做错了..只是html文件和txt文件之间的典型错误

首先,我向我的英语不好道歉。

我试图通过jQuery动态通过ajax在外部txt文件中的div内获取html代码。但是,我无法按照预期在特定div中获取html代码。 这是我的代码

.html文件

<div id="html_div_id_A">
  <div class="html_div_class">
  </div>  
</div>

<div id="html_div_id_B">
  <div class="html_div_class"> 
  </div>  
</div>

abc.txt文件

<div id = "txt_div_id_A">
  <div class="txt_div_class">
        some content A
  </div>  
</div>

<div id = "txt_div_id_B">
  <div class="txt_div_class">
        some content B
  </div>  
</div>

.js文件

function func(arg)
{
    var htmlDivId = $(arg).attr("id").toString()// html_div_id_A or html_div_id_B, decided in run time
    var txtDivId = htmlDivId == "html_div_id_A" ? "#txt_div_id_A" : "#txt_div_id_B";// txt_div_id_A or txt_div_id_B, decided in run time

    // What I could do now
    $(htmlDivId + " > .html_div_class").load("abc.txt #txt_id_B div");

    // What I expected to do
    $(htmlDivId + " > .html_div_class").load("abc.txt " + txtDivId + " div");
}

我尝试了here (Use Jquery Selectors on $.AJAX loaded HTML?)中建议的解决方案,但它不起作用。 有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试

function func(arg)
{
    var htmlDivId = $(arg).attr("id");

    //You need to assign the string value of the target id
    var txtDivId = htmlDivId == "html_div_id_A" ? 'txt_div_id_A' : 'txt_div_id_B';// txt_div_id_A or txt_div_id_B, decided in run time

    // What I expected to do
    // need to prepend # to target id
    $('#' + htmlDivId + " > .html_div_class").load("abc.txt #" + txtDivId + " div");
}

演示:Plunker