0
var theHTML = '<html><head><title>Hi</title><link rel="apple-icon-touch-precomposed" href="icon.jpg" /></head><body></body></html>';
alert($(theHTML).find('link[rel="apple-icon-touch-precomposed"]').attr('href'));

「未定義」と警告します。「icon.jpg」を返してほしい。なにが問題ですか?

4

4 に答える 4

3

これを試して:

alert($(theHTML).filter('link[rel="apple-icon-touch-precomposed"]').attr('href'));

つまり、.filter()の代わりに使用し.find()ます。

デモ: http://jsfiddle.net/WmwRU/

やってconsole.log($(theHTML))みるとその理由がわかります。

于 2013-07-16T22:26:24.477 に答える
3

そのような HTML で選択する場合.filter()は notを使用する必要があります。.find()

JSFiddle

于 2013-07-16T22:27:00.457 に答える
1

何のためにそれが必要なのかわかりませんが、filter()代わりに使用すると、必要にfind()応じて機能します:

var theHTML = '<html><head><title>Hi</title><link rel="apple-icon-touch-precomposed" href="icon.jpg" /></head><body></body></html>';
alert($(theHTML).filter('link[rel="apple-icon-touch-precomposed"]').attr('href'));

JSFiddle Demo

于 2013-07-16T22:28:00.453 に答える
0

そのように使用できるかどうかはわかりません.find。それについては API を読む必要があります。.prop('href')ただし、代わりに試すことができます.attr('href')。それがうまくいかない場合は、*after=などを使用することもお勧めしますlink[rel=*"apple-icon-touch-precomposed"]

于 2013-07-16T22:26:26.873 に答える