【发布时间】:2015-07-04 08:37:51
【问题描述】:
我有一个包含简单 HTML 的变量,类似于以下示例 - 变量的内容是通过 Ajax 动态生成的:
var errors = "<span id='id1'>Value 1</span><span id='id2'>Value 2</span><span id='id3'>Value 3</span><span id='id4'>Value 4</span><span id='id5'>Value 5</span>";
如何通过此变量中的 ID 获取特定元素的文本,例如ID='id3' 的 span 文本?这里的结果应该是“Value 3”。
我尝试了以下方法,但我得到的结果始终是空字符串或“[object Object]”:
$(errors).filter('#id3')$(errors).filter('#id3').text()$(errors).find('#id3').text()
更新:
在阅读完 cmets 和答案后,我将代码拆分,似乎问题在于 Ajax 的成功部分,其中 data 包含我在上面示例中显示的内容,但似乎它没有存储在变量中“errors”。 (如果我对变量进行硬编码,那么它可以与 .filter 一起使用。)
var errors = '';
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'fetchErrors',
selectedLang: selectedLang
},
success: function(data){
errors = data;
}
});
有人可以帮我解决这个问题吗?
提前非常感谢, 迈克
【问题讨论】:
-
我在 Firefox 中尝试了你的第二个答案 ($(errors).filter('#id3').text()) 工作正常。
-
同意@JohnDaniel ...在 chrome 中工作正常。
-
@JohnDaniel:谢谢。我现在也可以确认这一点,并且刚刚更新了我的帖子。
-
@keewee279 你可能有异步问题。将
async: false附加到您的 ajax 对象。 -
@keewee279,你在成功功能命中之前进行过滤。
标签: jquery variables filter find