0

PHPを使用してmysqlでデータを取得するコマンドがあり、divを削除する次のコマンドがあります(複数の削除を行うことができます):

echo "<div id='".$experience['index_of_form']."'>";
echo "<a href='#remove' id='remove' name='".$experience['index_of_form']."' style='text-align: right; text-decoration: underline;'>Remove</a>
echo "</div>";

出力を見ると、名前は experience1 (例) または experience2 です。ここまでは順調ですね。

削除するには、次の jquery 関数があります。

$('#remove').live("click", function() {
var name_of_experience = $('#remove').attr("name");
$('#'+name_of_experience+'').remove();
});

問題は、experience2 という名前の削除リンクがある場合、experience1 という名前の div を削除することです。出力を見ると、リンクの名前がexperience1ではなくexperience2であるため、理由はわかりません。

4

2 に答える 2

2

ID各要素に同じものを割り当てることに関係していると思います。IDは一度だけ使用できます。IDを aに切り替えると、CLASS問題なく動作するはずです。

于 2012-04-12T22:31:35.950 に答える
1

removeID は 1 つの要素の一意の識別子である必要があるため、同じページ内でID を複数回使用することはできません。jQuery は、DOM 内で最初に見つかったものだけを取得します。ID の代わりにクラスを使用してみてください。

jQuery 1.7 の時点で、.live()は推奨されなくなりました.on()$(this)また、名前と値を取得するときにセレクターの代わりに使用することで、パフォーマンスの小さな改善を自由に追加できました。

$('body').on("click", "a.remove", function() {
   var name_of_experience = $(this).attr("name");
   $('#'+name_of_experience).remove();
});
于 2012-04-12T22:31:42.810 に答える