使用jquery获取元素的文本

时间:2015-09-23 19:00:34

标签: javascript jquery

我有这个HTML,并尝试从每个<li class="col-xs-2">获取文本(即品牌:阿迪达斯)。

<div class="row text-secondary">
        <div class="col-xs-2">
            <ul class="row">
                <li class="col-xs-2">
                    Brand: 
                    Adidas
                </li>
                <li class="col-xs-2">
                    Colour: Black
                </li>
                <li class="col-xs-2">
                    Model:
                    New
                </li>
                <li class="col-xs-2">
                    Size: 
                    2 
                </li>

像这样:

if ($(".row.text-secondary")[0]){
    $('div.text-secondary div.col-xs-2 ul.row li.col-xs-2').each(function () {
    var Var1 = [];
    var Var2 = [];
    var Var3 = [];

    Var1 = $(this).text();
    Var2 = Var1.replace(/[\n\t\r]/g, "");
    Var3.push(Var2);
});
} else{
    var Var3 = ["NotAvailable", "NotAvailable", "NotAvailable","NotAvailable"];
}

但是当我保存到数据库时,我得到if ($(".row.text-secondary")[0])评估为true的空白值(如果我使用if ($(".row.text-secondary").length)也是如此。如果上述条件评估为{{},我只会得到正确答案1}},然后我得到false

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

使用条件$(".row.text-secondary")!=null

同样Var1Var2是字符串而不是数组

如果阻止

,则必须在外部声明

Var3

此外,如果您只想丢弃字段名称的值,请使用

var Var2 = Var1.substring(Var1.indexOf(":") + 1).replace(/[\n\t\r]/g, "").trim();

而不是

var Var2 = Var1.replace(/ [\ n \ t \ r \ n] / g,&#34;&#34;);

第一个选项将生成一个具有["Adidas", "Black", "New", "2"]

的数组

希望它有所帮助,

var Var3 = [];
if ($("div.row.text-secondary")!=null){
    $('div.text-secondary div.col-xs-2 ul.row li.col-xs-2').each(function () {
       Var1 = $(this).text();
       var Var2 = Var1.replace(/[\n\t\r]/g, "");
       Var3.push(Var2);
});
} else{
    Var3 = ["NotAvailable", "NotAvailable", "NotAvailable","NotAvailable"];
}