1

jqueryUI ドラッグ ドロップ リストを作成しました。ここで、オブジェクトを削除する必要があります。私はそれに次の関数を使用しました:

function remove(el) {
$(el).hide();
$(el).parent().parent().effect("highlight", {color: "#ff0000"}, 1000);
$(el).parent().parent().fadeOut('1000');
setTimeout(function() {
    $(el).parent().parent().remove();
    });
}

これは、この関数が実行されるコード (remove(this) 関数) です。

var html = '<div class="item i">';
html = html + '<div class="divrm">';
html = html + '<a onclick="remove(this)" class="remove '+itemid+'">&times;</a>';
html = html + '<div/>'+item+'</div>';

次のような要素があるとします。

<div class="item" id="i2">
<img src="img/2.jpg"/>
<label class="title">Title</label>
<label class="weight">Heavy</label>
</div>

削除機能では、「.title」クラスのラベルの間にテキストが必要です。どうやってやるの?私はこれを試しましたが、うまくいかないようです:

var remtitle = $(el).parent().parent().find(".title").val();

私は何を間違っていますか?私はjqueryにかなり慣れていないので、素人の間違いかもしれません。

4

1 に答える 1

1

ラベルは入力タイプではないため、代わりにhtml()orを使用します。text()val()

var remtitle = $(el).closest('.item').find(".title").html();

機能の追加にclosest()も注意してください。何度も使用するのではなく、親を簡単に見つけるのに役立ちますparent()。また、必ずコードを jQueryready()ハンドラーに配置してください。

于 2012-06-20T06:04:01.930 に答える