html – Anchor Tag中的CakePHP Span标签

html – Anchor Tag中的CakePHP Span标签,第1张

概述我正在尝试让Cake PHP输出一个如下所示的链接: <a href="/foo/bar" class="some other classes"> <span class="icon new"></span>FooBar</a> 所以我在视图中使用以下代码 <?php echo $this->Html->link($this->Html->tag('span', null, arra 我正在尝试让Cake PHP输出一个如下所示的链接:
<a href="/foo/bar" >     <span ></span>Foobar</a>

所以我在视图中使用以下代码

<?PHP echo $this->HTML->link($this->HTML->tag('span',null,array('class' => 'icon new')) . "Foobar",array('controller' => 'foo','action' => 'bar'),array('class' => 'some other  classes','escape' => false)     );?>

但CakePHP输出如下:

<a href="/foo/bar" >     <span >Foobar</span></a>

这打破了我的设计.如何在< span>之后让CakePHP附加“Foobar”标签

编辑:还值得一提的是我知道< span>标签通常不应该在锚标签内,但在必须的情况下.

解决方法 您需要使用空字符串而不是null作为span的文本,然后您的代码将按预期工作.

查看HTMLHelper的源代码,null被视为“特殊”值,只会创建跨度的开始标记.你可以在这一行看到这个:

https://github.com/cakephp/cakephp/blob/2.3.2/lib/Cake/View/Helper/HtmlHelper.php#L906

将您的代码更改为此代码应该可以正常工作;

echo $this->HTML->link(    $this->HTML->tag('span','','escape' => false));

关闭< / span>的附加说明

对于那些想知道的人,有点解释:

结束< / span>在你的例子中,实际上不存在于CakePHP生成的输出中,但是由浏览器自动“添加”.如果您在浏览器中查看HTML的来源,您会发现这实际上是HTML中的内容:

<a href="/foo/bar" > <span >Foobar</a>

如你所见,没有关闭’跨度’

因为< span>未关闭,浏览器将尝试更正此错误并自动假设您“忘记”关闭它.因此,它将添加一个结束< / span>在它找到的下一个标记之前(在这种情况下是结束< / a>).

浏览器中的“检查器”将始终显示浏览器用于呈现输出的HTML.这包括由浏览器和动态生成的元素(例如,通过JavaScript添加的元素)进行的自动更正.

要检查PHP脚本的输出,请始终查看源,而不是检查器

总结

以上是内存溢出为你收集整理的html – Anchor Tag中的CakePHP Span标签全部内容,希望文章能够帮你解决html – Anchor Tag中的CakePHP Span标签所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存