从.ajax筛选jquery响应时保留html

从.ajax筛选jquery响应时保留html,jquery,html,filter,response,Jquery,Html,Filter,Response,我正在调用一个返回如下数据的页面: <div id="class"> <option>Value</option> <option>Value</option> </div> <div id="type"> <option>Value</option> <option>Value</option> </div> 请注意

我正在调用一个返回如下数据的页面:

<div id="class">
    <option>Value</option>
    <option>Value</option>
</div>

<div id="type">
    <option>Value</option>
    <option>Value</option>
</div>
请注意,我在$(this.find(“.options”)末尾尝试了.text()和.html(),但没有成功。它仍然只返回值部分。但这很奇怪。当我使用$(this.html()(no.find(“.options”))时,我可以看到标记,但仍然看不到标记

提前谢谢

是的,从来没有想过浏览器会因为没有选择标签而删除选项标签


这是因为
div
元素不能在有效的HTML中包含
选项
元素。如果将选项包装在
select
而不是
div
中,这将起作用:

<select id="type">
    <option>Value</option>
    <option>Value</option>
</select>

价值
价值

这是因为
div
元素不能在有效的HTML中包含
选项
元素。如果将选项包装在
select
而不是
div
中,这将起作用:

<select id="type">
    <option>Value</option>
    <option>Value</option>
</select>

价值
价值

您是否考虑过在ajax响应中返回JSON字符串而不是html代码?这将使解析变得更容易,并且从服务器发送的数据量将更小

JSON响应如下所示:

<div id="class">
    <div class="options">
        <option>Value</option>
        <option>Value</option>
    </div>
</div>

<div id="type">
    <div class="options">
        <option>Value</option>
        <option>Value</option>
    </div>
</div>
'{"class":["option1", "option2"], "type": ["option1", "option2", "option3"]}'

然后使用parseJSON方法将响应放入对象中。参见工作示例

您是否考虑过在ajax响应中返回JSON字符串而不是html代码?这将使解析变得更容易,并且从服务器发送的数据量将更小

JSON响应如下所示:

<div id="class">
    <div class="options">
        <option>Value</option>
        <option>Value</option>
    </div>
</div>

<div id="type">
    <div class="options">
        <option>Value</option>
        <option>Value</option>
    </div>
</div>
'{"class":["option1", "option2"], "type": ["option1", "option2", "option3"]}'

然后使用parseJSON方法将响应放入对象中。查看工作示例

如何(为什么?)将
标记放入
标记中?我猜这可能是因为
div
不能在有效的HTML中包含
选项
。您是否尝试过将选项包装在
select
而不是
div
?因为我有多个下拉列表,需要一种方法来区分哪些选项用于哪个下拉列表。然后,过滤器通过div标记解析返回的数据,对于主div标记的每个id,它知道选项与哪个下拉列表相关。div标记和option标记是jquery调用的页面上唯一输出的内容。@nrabinowitz是的,使用标记而不是标记有效,使用.html()谢谢。写一个答案,我会把它标记为正确。你是如何(为什么?)把
标记放在
标记里面的?我猜这可能是因为
div
不能在有效的HTML中包含
选项。您是否尝试过将选项包装在
select
而不是
div
?因为我有多个下拉列表,需要一种方法来区分哪些选项用于哪个下拉列表。然后,过滤器通过div标记解析返回的数据,对于主div标记的每个id,它知道选项与哪个下拉列表相关。div标记和option标记是jquery调用的页面上唯一输出的内容。@nrabinowitz是的,使用标记而不是标记有效,使用.html()谢谢。写一个答案,我会记为正确的。再次感谢。我写这封信的时候都没想过。再次感谢你。我写这篇文章的时候都没想过。没有,但我对JSON不太了解。只需在手机应用程序中使用一次。虽然我需要更好地学习,但我现在还是宁愿远离它。不过,我很欣赏这个主意。好的,我一定会调查的。我在帖子中更新了JSFIDLE链接,以展示如何将选项放入选择框中。有关JSON的更多信息,请查看,它非常容易学习!没有,但我不太了解JSON。只需在手机应用程序中使用一次。虽然我需要更好地学习,但我现在还是宁愿远离它。不过,我很欣赏这个主意。好的,我一定会调查的。我在帖子中更新了JSFIDLE链接,以展示如何将选项放入选择框中。有关JSON的更多信息,请查看,它非常容易学习!