我有一个包含简单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
'的跨度文本?结果应为“Value 3
”。
我尝试了以下操作,但我得到的结果总是空字符串或“[object Object]
”:
$(errors).filter('#id3')
$(errors).filter('#id3').text()
$(errors).find('#id3').text()
更新
在阅读完评论和答案之后,我将代码分开了,似乎问题在于Ajax的成功部分data
包含我在上面示例中显示的内容,但它似乎没有存储在变量“errors
”。 (如果我对变量进行硬编码,那么它可以与.filter一起使用。)
var errors = '';
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'fetchErrors',
selectedLang: selectedLang
},
success: function(data){
errors = data;
}
});
有人可以帮我这个吗?
非常感谢, 麦克
答案 0 :(得分:4)
你走在正确的轨道上......
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>";
var obj = $(errors);
var filter = $(obj).filter('#id3');
console.log(filter.text());
jsfiddle:fiddle
答案 1 :(得分:2)
尝试将async: false
添加到ajax属性。
答案 2 :(得分:2)
这对我有用(fiddle)。
success: function(data){
var result = $(data).filter("#id3").text();
}
答案 3 :(得分:1)
这就是工作:
$(errors).filter("#id3").text()