1

testこの例に入りたいと思います。うまくいかないのはなぜですか?

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>

ジャバスクリプト

$(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()(ライブは少し前に廃止され、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 に答える