「私の問題は、クラス名を使用する最後の項目のみを取得したいということです。」
OK、一般的な意味では、次の.last()
方法を使用します。
var lastItem = $('.itemAnchor').last();
(フィドルで)すべてコメントアウトされているため、DOMにそのクラスの要素がないことを除いて。これが、質問で示したコードが機能しなかった理由でもあります。最初の行:
var item = $('.itemAnchor')[6];
...item
変数を に設定しますundefined
。セレクター'.itemAnchor'
は要素を返さないため、$('.itemAnchor')
は空の jQuery オブジェクトであり、 index には要素がありません6
。
ステートメントで開始コメントと終了コメントを削除した後'.itemAnchor'
に取得する html でセレクターを使用する必要があるため、次のようになります。.replace()
var href = $($('.hidden_elem')[0].innerHTML.replace('<!--','').replace('-->',''))
.find('.itemAnchor').last().attr('href');
デモ: http://jsfiddle.net/rtnNd/4/
コメントに応じて編集:
「最後の要素より前の itemElement を取得するにはどうすればよいでしょうか。」
ここに示すように、常に最後から 2 番目の項目を.slice(-2,-1)
の代わりに使用することがわかっている場合: http://jsfiddle.net/rtnNd/5/.last()
またはhref
、パラメーターを含む が必要な場合は、 withh=
のようなセレクターを使用できます。この場合、 orは必要ありません。'.itemAnchor[href*="h="]'
.find()
.last()
.slice()
var href = $($('.hidden_elem')[0].innerHTML.replace('<!--','').replace('-->',''))
.find('.itemAnchor[href*="h="]').attr('href');
デモ: http://jsfiddle.net/rtnNd/6/
ただし、属性を含むセレクターhref
を使用するこの最後の方法は、テキスト「h =」がどこにでもある要素をピックアップしているため、あなたのケースでは機能しますが、ピックアップhh=something
なども行うことに注意してくださいmath=easy
。h=
これを回避して、次のようにテストできます。
var href = $($('.hidden_elem')[0].innerHTML.replace('<!--','').replace('-->',''))
.find('.itemAnchor')
.filter(function() {
return /(\?|&)h=/.test(this.href);
}).attr('href');
デモ: http://jsfiddle.net/rtnNd/7/