2012-12-10 58 views
1

我有具有錨標記的div塊。如何從錨標記的href屬性中提取參數「sid」的值

如何從每個錨標籤的href屬性中提取屬性「sid」的值?

的方式讓我的代碼數據:

$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com&callback=?', function(data){ 
     //$('#output').html(data.contents); 


var code = data.contents; 

document.myform.outputtext.value = code 

我試過,但它不是做HREF的產值?代碼串的

var pattern = /<a href="([^"]+?)">/gi; 
code = code.match(pattern); 
for (i = 0; i < code.length; i++) { 
document.write(code[i].replace(pattern, '<a href="./doit.php?Id=$1&title=$2">$2</a><br />')); 
} 

例如:

<td width=120 valign="top">      <div style="height:135px; 
    border:1px solid #BBBBBB; background:#BBBBBB; margin-left:2px; 
    text-align:center; "> 
        <a href="/now/episodes.php?name=path&id=4000&sid=12345&page=0"><img 
    border="0" src="http://www.somesite.com/1234.jpg" width="150" 
    height="83"></a><br> 
         <font face="Tahoma" size="2"><b>Star Album</b><br/> 
          episode 4 
         </font>    </div> 


     </td> 
+0

我建議首先看這個問題:http://stackoverflow.com/questions/7266631/selecting -elements-without-jquery – knownasilya

回答

0
<?php 
$referenceStr = "<td width=120 valign=\"top\">      <div style=\"height:135px; 
    border:1px solid #BBBBBB; background:#BBBBBB; margin-left:2px; 
    text-align:center; \"> 
        <a href=\"/now/episodes.php?name=path&id=4000&sid=12345&page=0\"><img 
    border=\"0\" src=\"http://www.somesite.com/1234.jpg\" width=\"150\" 
    height=\"83\"></a><br> 
         <font face=\"Tahoma\" size=\"2\"><b>Star Album</b><br/> 
          episode 4 
         </font>    </div> 


     </td>"; 

$key = 'sid'; 
preg_match('/(?:&|(\?))' . $key . '=[^&]*(?(1)&|)?/i', $referenceStr,$matches); 
foreach($matches as $k => $v) $matches[$k] = str_replace(array('&sid=','sid='),'',$v); 
print_r($matches); 
?> 

這裏是一個PHP解決方案,只需使用該模式,它將爲JS工作了。

對於JS:

var code = '<td width=120 valign="top"> <div style="height:135px; border:1px solid #BBBBBB; background:#BBBBBB; margin-left:2px; text-align:center; "> <a href="/now/episodes.php?name=path&id=4000&sid=12345&page=0"><img border="0" src="http://www.somesite.com/1234.jpg" width="150" height="83"></a><br> <font face="Tahoma" size="2"><b>Star Album</b><br/> episode 4 </font> </div> </td>'; 
matchingelements = code.match(/sid\=*(\d*)/ig); 
for(i=0;i<code.length;i++){ 
    document.write(matchingelements[i].replace('&sid=','').replace('sid=','')); 
} 

此輸出12345

+0

感謝您的代碼。 var pattern = /(?:&|(\?))sid = [^&] *(?(1)&|)?/i; – user1788736

+1

/sid \ = *(\ d *)/ /(?:&|(\?))sid = [^&] *(?(1)&|)?/ ig 在您的HTML源代碼示例中,兩者似乎均可正常工作 – Graben

+0

請勿忘記/結束的地方g意味着得到所有發生在JS – Graben

1

嘗試:

var url="/now/episodes.php?name=path&id=4000&sid=12345&page=0" 

var match = url.match(/sid=(.*)\&/); 
alert(match[1]);​ 
+0

它不起作用!我沒有一行輸入作爲你的例子 – user1788736

相關問題