简体   繁体   English

如何从锚标记的href属性中提取参数“ sid”的值

[英]How extract the value of the parameter “sid” from the href property of an anchor tag

I have blocks of divs that have anchor tags inside. 我有里面有锚标签的div块。

How can you extract the value of the property "sid" from the href property of each anchor tag? 如何从每个锚标记的href属性中提取属性“ sid”的值?

the way i get my code data : 我获取代码数据的方式:

$.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

I tried this but it doesn't output value of href ? 我试过了,但没有输出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 />'));
}

example of code string: 代码字符串示例:

<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>

Try: 尝试:

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

var match = url.match(/sid=(.*)\&/);
alert( match[1] );​
<?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);
?>

Here is a PHP solution, just use the pattern, it will work for JS too. 这是一个PHP解决方案,只需使用模式即可,它也适用于JS。

For 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=',''));
}

This outputs 12345 输出12345

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM