我陷入了jQuery宇宙的角落,可以肯定会使用一些帮助。
简而言之,我使用jQuery(GET)进行Ajax调用,并将XHTML页面作为响应。在响应中(其中包括<html>
,<head>
和<body>
标记),有一个输入元素,我只知道该名称的一部分。我需要得到这个隐藏输入字段的值,它随响应一起出现。
P.S。我无法控制html响应的样子,所以我无法重新格式化。 这些文件需要位于包含jQuery.js(今天最新版本)
的文件夹中这是我到目前为止所提出的。
Page1.html(进行Ajax调用并获取page2.html作为回应)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>runthis</title>
<script type="text/javascript" language="javascript" src="jQuery.js"></script>
<script tyle="text/javascript">
$(document).ready(function(){
$('input').click(function(){
$.ajax({
type : "GET",
url : 'page2.html',
dataType : "html",
success: function(data) {
alert($(data).filter('input[name*="test"]').value);
},
error : function() {
alert("Sorry, The requested property could not be found.");
}
});
});
});
</script
</head>
<body>
<input type="button" value="load" />
</body>
</html>
Page2.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>TiTlE</title>
</head>
<body>
<input type="hidden" name="1-test" value="123" />
<input type="hidden" name="some-other-name" value="456" />
<input type="hidden" name="yet-another-name="789" />
</body>
</html>
所以在这些例子中,我需要得到“123”作为答案。
如果有人能够指出我的错误并帮助我实现这一目标,我将不胜感激。我花了好几个小时浏览网络,我的所有Google搜索结果都标记为已显示:)但仍然无法让它工作。
答案 0 :(得分:0)
filter()返回一个jQuery对象,而不是DOM元素,因此您必须使用val()方法而不是value
属性:
alert($(data).filter('input[name*="test"]').val());
答案 1 :(得分:0)
我刚刚复制了你的设置,发现了你需要解决的两个问题才能让它发挥作用。
两者都在这一行:
alert($(data).filter('input[name*="test"]').value);
首先它应该结束.val()
其次,您要求的是子集的值。选择第一个匹配并返回该值:
alert($(data).first('input[name*="test"]').val())