3

次の文字列を含む変数があります。

var html = '<a href="http://www.taxibooking.dch/wp-content/uploads/2012/12/4-3.jpg"><img src="http://www.taxibooking.dch/wp-content/uploads/2012/12/4-3-300x202.jpg" alt="" title="4 (3)" width="300" height="202" class="alignnone size-medium wp-image-7" /></a>';

そして、次の2つの操作を使用しようとします:

full_url = jQuery('a', html).attr('href');
tiny_url = jQuery('img', html).attr('src');

は正常にtiny_url動作し、値を返しますが、http://www.taxibooking.dch/wp-content/uploads/2012/12/4-3-300x202.jpg常にfull_url空です。

これがなぜなのか誰か教えてもらえますか?

4

2 に答える 2

2

これは、a要素が渡したhtmlではなく、最初のレベルにあるためです。

あなたはこれを行うことができます:

full_url = jQuery('a', '<div>'+html+'</div>').attr('href');

ただし、jQueryオブジェクトを定義して再利用する方が効率的です。

var $div = $('<div>'+html+'</div>');
full_url = jQuery('a', $div).attr('href');
tiny_url = jQuery('img', $div).attr('src');
于 2012-12-07T11:05:46.127 に答える
2

issue idは含まれている要素であるため、jQuery は最初の要素内で要素aを見つけようとしており、明らかに何も返しません。aa

filter()代わりに、次のように使用できます。

var full_url = jQuery(html).filter('a').attr('href');
var tiny_url = jQuery(html).find('img').attr('src');

フィドルの例

または、HTML を でラップしてdiv、jQuery をそのままにしておくこともできます。

$html = jQuery('<div>' + html + '</div>');
full_url = jQuery('a', $html).attr('href');
tiny_url = jQuery('img', $html).attr('src');
于 2012-12-07T11:08:13.847 に答える