jQuery 代码:
$(document).ready(function() {
$('#s-results').load('get_report1.php').show();
$('#search-btn').click(function(){ showValues(); });
$(function() {
$('form').bind('submit', function() { showValues(); return false; });
});
function showValues() {
$.post('get_report1.php', { name: form.name.value },
function(result) {
$('#s-results').html(result).show();
}
);
}
});
HTML:
<form name = "form">
<div>Enter name</div>
<input type="text" name="name" id="fn" />
<input type="submit" value="Search" id="search-btn" />
<div>
<input type="text" id="se2" name="search22">
</div>
</form>
<div id = "s-results" style="height:50px;">
</div>
至此脚本运行完美。现在我只想再次过滤从上述函数返回的 HTML。
为了实现这一点,我尝试了这行代码:
$(result).filter('#se2');
在带有 result
参数的函数下,但它不起作用。
那么如何过滤返回的HTML代码呢?
最佳答案
您可能需要 find()
而不是 filter
,因为您需要获取后代,而 filter "将匹配元素集减少为与选择器或通过函数的测试"
$(result).find('#se2');
如果#se
被添加到DOM
中,那么你可以直接使用id选择器
se = $('#se2');
我制作了另一个演示(因为我还在等待你的演示不起作用)以进一步详细说明如何将包含你拥有的 html 的字符串传递给 jQuery
函数 $( )
使用 find 搜索其中的元素。
html = '<form name = "form"> \
<div>Enter name</div> \
<input type="text" name="name" id="fn" /> \
<input type="submit" value="Search" id="search-btn" /> \
<div> \
<input type="text" id="se2" name="search22" value="se2"/> \
</div> \
</form>\
<div id = "s-results" style="height:50px;"> \
</div> ';
alert($(html).find('#se2').val());
注意 您可以使用 find
进一步检查上面示例中的代码 find
wont work by using filter
在这个 jsfiddle example
关于javascript - 如何过滤从 jQuery 返回的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24978505/