2010-06-18 16 views

cevap

16

Dene:

jQuery(html).attr('href'); 

Ya

<a> etiketi örnek daha html derin ise:

jQuery(html).find('a').attr('href'); 

DOM nesneleri HTML dizeleri dönüştürmek ve bir jQuery nesnesi döndürür jQuery() işlevi onları sizin için içeren.

+0

Güzel ve özlü. Ayrıca, "$ (html)" işinin neden işe yaradığını açıklamak için iyi bir iş. –

+1

+1. OP'ye bir not, jquery'nin oldukça sık kullanılan .html() adında bir işlevi olduğundan, "html" yi değişken ad olarak kullanmaktan kaçınıyorum. – womp

+0

Bunu arayan başkalarına bir not olarak, jQuery (html) .get (0) .href'yi de yapabilir ve vanilla javascript'i kullanabilirsiniz. –

1
Kodunuz Eğer istediğiniz gibi çalışır hale getirmek için gibi görünmelidir

: yönteminiz çalışmıyor neden

var html = "<a href='http://path/to/file.pdf'>File</a>"; 
alert($(html).attr("href")) 
3

açıklamak - Eğer jQuery("a",html) yaptığınızda, bağlamında içinde elemanlar arıyor eleman html içinde saklanır.

İçinde olan tek şey Dosya metni. Dize, örneğin bir div sarılmış, işe yarayacaktı. <div><a href='...'>File</a></div>


Sana bir jQuery nesnesi oluşturmak için bazı diğer bir nedeni olmalı. Eğer değilse ve ekstra yükü istemiyorsanız, düzenli bir ifade kullanabilirsiniz.

Örnek:http://jsfiddle.net/e3Gyc/

var html = "<a href='http://path/to/file.pdf'>File</a>"; 

var result = html.match(/href='([^']+)'/)[1]; 

gnarf ve verdi Dzida mükemmel olduğunu Aksi cevapları.

+0

Ooo, bir yandan, jQuery ("a", html) 'nin çalışmasının açıklaması çok iyi değil ... Diğer tarafta * gasp * ayrıştırma yapmayı savunuyor RegExp ile HTML ... Risky Move - +1 :) – gnarf

+0

@gnarf - + için teşekkürler. : o) Hayır, savunuculuk yapmamak. Bir avukatın çoğu için çok ilgisizim. ; o) Sadece href'in tek amaç olması durumunda jQuery nesnesi oluşturmanız gerekmeyeceği bir noktaya gelin. Muhtemelen durum böyle değil. Kuşkusuz, bu çözümün faydası dar ve tehlikeyle dolu. +1 backatcha. – user113716