我有一个包含以下字符串的变量:
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>';
然后我尝试使用以下两个操作:
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
始终为空。
谁能告诉我这是为什么?
最佳答案
这是因为 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');
关于jQuery 选择器的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761773/