[英]Jquery to parse HTML in a string
我尝试搜索相关帖子,并且很难弄清楚该如何解决我的查询-我非常接近,任何帮助都非常感谢(Jquery的新功能)。
我使用PHP进行编程,并尝试从标记或文本中提取HREF值。 两者都会起作用。
我基本上将我的HTML代码放在一个字符串中,可能包含多个标签,并想将标签的文本加载到PHP数组或变量中(现在只是尝试警告结果,以后可以将其转储)。
我的PHP代码:
<?php
$info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong>';
echo '<script type="text/javascript">';
echo '$("document").ready( function () {';
echo 'alert($("a", $("' . $info . '")).html());';
echo '});';
echo '</script>';
?>
上面没有任何提示。 放入
echo 'alert("yes")';
确实有效,所以我猜我的语法有一些基本错误,但是4小时后仍然找不到它! :)
提前致谢。
您不是用Javascript将字符串中的引号引起来。
您的代码创建的Javascript看起来像
$("<li>...<a href="http..."...")
属性中的引号将Javascript字符串结尾,从而产生语法错误。
您需要调用json_encode
。
SLaks剩下您的问题。 但是,它不是:
$("document").ready();
它的:
$(document).ready();
前者是名为<document>
的标签的选择器。
这应该按照您希望的方式工作:
<?php
$info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>';
?>
<script type="text/javascript">
$(document).ready( function () {
alert($("a", $("<?php echo $info; ?>")).html());
});
</script>
您没有关闭li标签
$info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong>';
应该
$info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>';
您应该转义信息。 它之所以中断,是因为您在双引号内有双引号:
$info = addslashes($info);
要么
$info = json_encode($info);
要不就
$info = str_replace('"', '\\"');
尝试先保存HTML是JS变量,然后再使用它。 另外,heredocs是您的朋友。
<?php
$info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>';
echo <<<END
<script type="text/javascript">
$(function(){
var HTML = '$info';
alert($('a', $(HTML)).html());
});
</script>
END;
?>
echo '<script type="text/javascript">
$(document).ready( function () {
var info = \''.$info.'\';
$("a").html(info);
alert(info);
});
</script>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.