1

I want get test inside this example. Why it doesn't work?

HTML

<div id="partTypes">
    <div class="partType">
        <div class="details"> <span class="name">test</span>

        </div>
        <div class="buttons">
            <input class="addCart" type="button" value="click me" />
        </div>
    </div>
</div>

JAVASCRIPT

$(document).ready(function () {
    $('input.addCart').live('click', function () {
        var $partType = $(this).closest('div.partType');
        alert($partType.filter('span.name').text());
    });
});
4

3 回答 3

4

改变:

alert($partType.filter('span.name').text());

至:

alert($partType.find('span.name').text());

理想情况下,您还想停止使用.live()并移至.on()(因为 live 不久前被弃用并在 1.9 中删除)所以整个块将是:

$('input.addCart').on('click', function () {
    var $partType = $(this).closest('div.partType');
    alert($partType.find('span.name').text());
});

jsFiddle 示例

于 2013-04-29T13:38:49.340 回答
2

尝试这个:

    $(document).ready(function () {
    $('input.addCart').click(function () {
        var $partType = $(this).closest('div.partType');
        alert($partType.find('span.name').text());
    });
});
于 2013-04-29T13:41:40.990 回答
0

.filter()将过滤器应用于传递的元素集,您想要查看需要使用的后代元素find()

$(document).ready(function () {
    $('input.addCart').live('click', function () {
        var $partType = $(this).closest('div.partType');
        alert($partType.find('span.name').text());
    });
});

.filter():将匹配元素集减少为匹配选择器或通过函数测试的元素。

.find():获取当前匹配元素集中每个元素的后代,由选择器、jQuery 对象或元素过滤。

于 2013-04-29T13:38:36.150 回答