jquery .text()返回空字符串

时间:2014-06-03 20:44:32

标签: jquery

不确定原因,但使用以下Html

<div id="basket" class="panel panel-primary">
    <div class="panel-heading">
        <h3 class="panel-title">Basket</h3>
    </div>
    <div class="panel-body">

            <div id="row-031d9f2b-c6e9-e311-827b-c8bcc8ef428f" class="row">
                <div class="col-xs-8"><span id="qty-031d9f2b-c6e9-e311-827b-c8bcc8ef428f">5</span> <small>x</small> Match Night Ticket [Adult]</div>
                <div class="col-xs-2 text-right">16.00</div>
                <div class="col-xs-2"><a name="removeFromBasket" href="javascript:;" data-pid="031d9f2b-c6e9-e311-827b-c8bcc8ef428f"><span class="glyphicon glyphicon-remove text-danger"></span></a></div>
            </div>
    </div>
    <div class="panel-footer">
        <div class="row">
            <div class="col-xs-8"><strong>Total</strong></div>
            <div id="basket-total" class="col-xs-4">80.00</div>
        </div>
    </div>
</div>

我无法通过id qty-031d9f2b-c6e9-e311-827b-c8bcc8ef428f

获取范围的值

我正在使用以下返回空字符串的javascript。我确定我错过了一些明显的东西,但看了一个小时左右并尝试了无数的变化后,我看不出我哪里出错了。

 var qtyId = "qty-" + pid;
                //var productRowId = "#row-" + pid;
                alert($("#basket .panel-body " + qtyId).text());
上面脚本中的

pid等于guid值031d9f2b-c6e9-e311-827b-c8bcc8ef428f

2 个答案:

答案 0 :(得分:2)

将警报更改为:

alert($("#" + qtyId).text());

<强> jsFiddle example

由于ID必须是唯一的,因此无需将它们链接到此处即可获得所需的ID。而且你必须记住使用#作为ID的前缀。

答案 1 :(得分:1)

这是因为您将该元素称为顶级元素而不是ID。使用jQuery,没有.#选择器,Sizzle选择器引擎假定您引用了一个元素,例如<div>

要解决您的问题,只需在以下位置添加ID选择器:

var qtyId = "qty-" + pid;
//var productRowId = "#row-" + pid;
alert($("#basket .panel-body #" + qtyId).text());

唯一的变化是在最后一行,我添加了#