jQuery:如何从变量

时间:2015-07-04 08:37:52

标签: jquery variables filter find

我有一个包含简单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]”:

  1. $(errors).filter('#id3')
  2. $(errors).filter('#id3').text()
  3. $(errors).find('#id3').text()
  4. 更新
    在阅读完评论和答案之后,我将代码分开了,似乎问题在于Ajax的成功部分data包含我在上面示例中显示的内容,但它似乎没有存储在变量“errors”。 (如果我对变量进行硬编码,那么它可以与.filter一起使用。)

    var errors = '';
    $.ajax({        
        type: "post",   
        url: "ajax.php",
        cache: "false",
        data: {
            node: 'fetchErrors',
            selectedLang: selectedLang
        },
        success: function(data){
            errors = data;
        }
    });
    

    有人可以帮我这个吗?

    非常感谢, 麦克

4 个答案:

答案 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添加到a​​jax属性。

答案 2 :(得分:2)

这对我有用(fiddle)。

success: function(data){
    var result = $(data).filter("#id3").text();
}

答案 3 :(得分:1)

这就是工作:

$(errors).filter("#id3").text()