0

我想使用 JQuery 从 HTML 字符串中访问元素。

我有一个以下 AJAX 函数,它在成功时返回 HTML 文本。我希望使用 Jquery 仅从该 HTML 文本中提取标签的内容。

假设我有一个resp包含 HTML 内容的变量。我想访问此 HTML 内容中标签的内容,如下所示。

var resp = "<html><head></head><body><form action="changePassword" name="fmChangePassword"> .... form elements .... </form></body> </html>"
alert(resp); //this alerts the full HTML content properly                 
alert($(resp).find("form").html()); //trial 1 -- returns NULL
var test = $(resp).find("#changePassword"); //#changePassword is the ID of the form
//alert(test.html());
displayChangePwdWindow(test);   //need to pass the form content here        

我尝试使用.find()但没有成功。

谁能帮助我如何做到这一点?

4

3 回答 3

1

Maybe you need to use .filter() instead of .find(). you can check the Demo: first demo

or maybe if you still want to use .find() you could place the HTML into a wrapper to search from. you can check the Second Demo: second demo

于 2012-11-07T12:34:30.567 回答
0

HTML
在你的 body 中创建一个隐藏的 div....

<div id="DIVID" style="display:none"></div>

AJAX

$.ajax({
        type: "POST",
        url: url,
        error: function(jqXHR, textStatus, errorThrown)
        {alert(errorThrown);},
        success: function(resp){

         $('#DIVID').html(resp);
         var test = $("#changePassword").html();

         displayChangePwdWindow(test);  //need to pass the form content here    
        }
}); 

或者..您只需先将其附加到正文..无需创建隐藏的 div

$.ajax({
        type: "POST",
        url: url,
        error: function(jqXHR, textStatus, errorThrown)
        {alert(errorThrown);},
        success: function(resp){

         $(document.body).append(resp);
         var test = $("#changePassword").html();

         displayChangePwdWindow(test);  //need to pass the form content here    
        }
});
于 2012-11-07T12:18:37.050 回答
0

可能这可以帮助你

$.ajax({
   type: "POST",
   url: url,
   error: function(jqXHR, textStatus, errorThrown) {
      alert(errorThrown);
   },
   success: function(resp){
      var test = jQuery("<div/>").append(resp).find("#changePassword");
      alert(test.html());
      displayChangePwdWindow(test);  //need to pass the form content here    
   }
});
于 2012-11-07T12:22:04.010 回答