我正试图从锚点获取href的值。代码看起来像这样
var html = "<a href='http://path/to/file.pdf'>File</a>";
alert(jQuery("a",html).attr("href"));
我得到的唯一输出是“未定义”。 我想要“http://path/to/file.pdf”。
非常感谢任何帮助。
答案 0 :(得分:17)
尝试:
jQuery(html).attr('href');
或者,如果html中的<a>
标记比您的示例更深:
jQuery(html).find('a').attr('href');
jQuery()
函数会将HTML字符串转换为DOM对象,并返回包含它们的jQuery对象。
答案 1 :(得分:3)
解释为什么你的方法不起作用 - 当你执行jQuery("a",html)
时,你正在搜索存储在html中的元素的上下文中的元素。
目前唯一的内容是文件文本。例如,如果你的字符串被包裹在div中,它就会起作用。 <div><a href='...'>File</a></div>
我假设您有其他原因来创建jQuery对象。如果没有,并且您不需要额外的开销,则可以使用正则表达式。
示例: http://jsfiddle.net/e3Gyc/
var html = "<a href='http://path/to/file.pdf'>File</a>";
var result = html.match(/href='([^']+)'/)[1];
否则 gnarf 和 Dzida 给出的答案非常好。
答案 2 :(得分:1)
您的代码看起来应该可以让它按您的意愿运行:
var html = "<a href='http://path/to/file.pdf'>File</a>";
alert($(html).attr("href"))