使用jQuery从html中提取href

时间:2010-06-18 22:37:50

标签: jquery

我正试图从锚点获取href的值。代码看起来像这样

var html = "<a href='http://path/to/file.pdf'>File</a&gt;";
alert(jQuery("a",html).attr("href"));

我得到的唯一输出是“未定义”。 我想要“http://path/to/file.pdf”。

非常感谢任何帮助。

3 个答案:

答案 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"))