2

クリックされた要素の最短セレクターを取得するにはどうすればよいですか?
後でこのセレクターを使用して、同じ (またはほぼ同じ) 結果を回復したいと考えています。

既存の方法はありますか?

そのための私の考えは、次のものを優先して検索しています。

  1. 使い捨てID
  2. カウンター付マルチID
  3. 使い捨ての名前
  4. カウンター付きの多用名
  5. 単一使用のクラス名
  6. カウンター付きの多目的クラス名
  7. 1.-6. への最短の親パス

最大限の信頼性と最大限の柔軟性を実現するための短いパスを構築する方法がわかりません (新しい親タグまたはコード内の移動)。

4

1 に答える 1

0

私は次のようなものを提案します:

要素がクリックされたとき

  1. ID があるかどうかを確認します。ID がある場合は、セレクターが#<id>
  2. ID がない場合は、ランダムな識別子を生成し、それを要素の ID として割り当てます。セレクターは#<generated-id>

つまり、次のようなものです:

var selector = '';

$('element').click(function() {
    var self = $(this);
    if(!self.is('[id]')) {
        var id = 'ljhlihj'; // replace with code to generate random ID
        self.attr('id', id);
    }
    selector = '#' + self.attr('id');
}
于 2012-10-30T10:30:58.880 に答える