Чтобы объяснить, почему ваш метод не работает - когда вы делаете 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 дали отличные.
Nice и лаконичный. Также хорошая работа для объяснения причин работы '$ (html)'. –
+1. Просто примечание к OP, я бы избегал использования «html» в качестве имени переменной, поскольку jquery имеет функцию с именем .html(), которая используется довольно часто. – womp
В качестве примечания для других, которые ищут это, вы также можете использовать jQuery (html) .get (0) .href' и использовать vanilla javascript. –