解析AJAX HTML响应:我可以找到元素,但不能访问它们的innerHTML或值
Parsing AJAX HTML Response: I can find the elements but not access their innerHTML or values?
我正在向.aspx脚本发出AJAX请求&它返回HTML。我在JQuery中解析返回的HTML时遇到了问题,比如我无法访问某些HTML元素值或innerHTML。
你能告诉我我做错了什么吗;我该怎么修
我将脚本称为test.aspx;它只返回这个(绝对没有其他):
<input type="hidden" id="clientIndex" value="4"></input>
<div id="clientContent"> ...some html </div>
当我解析这个HTML时,我无法访问inputs值或div innerHTML,但我可以访问input&div对象很好(它们存在)。
我使用的代码是:
$.ajax(
{
type: "POST",
url: "test.aspx",
data: "i=" + $(".clientIndexClass:first").val(),
dataType: "html"
}).done(function (msg) {
// NOTE: msg has the correct html so its sending back the right formatted HTML
var index = $(msg).find("#clientIndex").val();
var content = $(msg).find("#clientContent").html();
// ERROR HERE: content is null & index is undefined when it shd be text for both
console.log("AJAX Response: " + index + ", " + content + ", " + msg);
$(treadmill).html($(treadmill).html() + content);
if (index == "-1") {
console.log("killing intervals coz = -1");
clearInterval(ele.ajaxInterval);
clearInterval(ele.slideshowInterval);
}
});
在上面的代码中,我可以找到ID为"clientIndex"answers"clientContent'使用$(msg).find("#clientIndex")但是我无法访问clientIndex的值?即$(msg).fund("#clientIndex").val();返回null????
在上面的代码中,我可以找到ID为"clientIndex"answers"clientContent'使用$(msg).find("#clientIndex");
我敢肯定你找不到这样的东西。.find()
仍然会返回一个jQuery对象,但我确信您会发现它的长度是0,因为没有找到任何元素。
问题是.find()
在所选元素的子体中查找匹配项。在您的案例中,正好有两个没有子体的"顶级"元素。解决方案是使用.filter()
方法:
var $msg = $(msg),
index = $msg.filter("#clientIndex").val(),
content = $msg.filter("#clientContent").html();
注意:我将$(msg)
的结果存储在一个名为$msg
的变量中,以避免连续两行解析相同的东西。
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- Highcharts可以从服务器加载数据,但不能更新
- 刷新GoogleMaps tile服务器可以使用JavaScript,但不能使用GWT
- node.js可以识别字符模式,但不能识别数字模式
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 为什么我可以在javascript中访问asp:TextBox,但不能访问asp:Label
- 扩展了类,但不能访问子类的函数
- IAM允许访问一个dynamoDB方法,但不能访问另一个使用javascript到AWS的方法
- 解析AJAX HTML响应:我可以找到元素,但不能访问它们的innerHTML或值
- Angular Ui-Router |从控制器访问视图中的作用域变量,但不能正常工作
- 为什么我可以访问iFrame,但不能访问它的内容?
- 返回JSON对象,但不能通过$.ajax()访问
- AngularJS的JSON对象可以在视图中访问,但不能在控制器中访问
- 可以访问对象的属性,但不能访问函数
- 在内容脚本中定义的脚本,但不能在弹出(Chrome扩展)访问