php - jQuery 或 php 在单个节点内查找多个 html 字符串并用 span 括起来

标签 php jquery string

经过一番挖掘,我仍然没有接近这一点。

我有一个由这个 php 生成的 html 字符串...

这会去除所有多个空格。

例如上面输出下面的这个字符串,不包含其他节点,只是文本...

 1 Lorem ipsum 1.1 Dolor sit amet, consectetur adipiscing elit. 1.2 Nulla non felis enim, a lacinia erat. 1.3 Donec ullamcorper feugiat lobortis. 1.4 Vivamus congue libero ut augue consectetur ultricies vitae eget quam. 2 Suspendisse 2.1 Ultrices volutpat tempus. 2.2 Aenean ullamcorper porta lacus, ut vehicula tortor dapibus hendrerit. 2.3 Proin condimentum est eget arcu mollis consequat. 2.4 Ut malesuada posuere lobortis. 2.5 Suspendisse gravida adipiscing nunc, et vehicula nunc tincidunt nec. 3 Tincidunt 3.1 Sed eget porta ligula. 3.2 Morbi vitae augue in eros tincidunt tincidunt consequat interdum dui. 3.3 Phasellus ante velit, venenatis et dignissim eu, semper vitae lectus. 3.4 Maecenas feugiat adipiscing tortor, non porttitor sem condimentum luctus. 3.5 Curabitur pharetra gravida ornare. 3.6 Donec tortor erat, posuere in ullamcorper eget, posuere sit amet purus. 3.7 Duis feugiat sollicitudin odio, ac molestie nulla elementum non. 4 Vestibulum 4.1 Tempor lectus sit amet purus condimentum nec condimentum dui viverra. 4.2 Duis sodales molestie fermentum. 4.3 Maecenas euismod, lacus ut ullamcorper condimentum, erat felis sodales lectus, a sodales ipsum lectus eu lorem. 4.3 Vivamus ac rhoncus est.


我正在尝试找到所有数字(1、1.2、1.3等)并将它们包装在一个跨度中。

我尝试过 php,但运气不太好......

$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, "<span>".$yummy."</span>", $phrase);

echo $newphrase;

上面的 php 正在输出这个... 你应该每天吃 Array、Array、Array。


所以我想我可以尝试jquery,但我不确定我是否正确地接近它,请我的代码......

var points = [' 1 ',' 1.1 ',' 1.2 ',' 1.3 ',' 1.4 ',' 2 '];

$("p").html(this.html().replace( points,'<span>' + points + '</span>'));

我认为我偏离了轨道,但我真的找不到太多关于精确指向字符串特定位的信息。

我摆弄了我的 jQuery... http://jsfiddle.net/XmU6p/


我想与此同时,我仍将继续解决这个问题。但如果有人能分享一些关于我哪里出错的指示,我将不胜感激。谢谢

最佳答案

在这两种情况下,您都需要实际循环遍历值数组并对每个值进行替换。我对 PHP 不太熟悉,所以我使用 jQuery 做了一个例子。试试这个:

var points = [' 1 ',' 1.1 ',' 1.2 ',' 1.3 ',' 1.4 ',' 2 '];
$.each(points, function(i, val) {
    var $p = $('p');
    $p.html($p.html().replace(val, '<span>' + val + '</span>'));
});

Updated fiddle

关于php - jQuery 或 php 在单个节点内查找多个 html 字符串并用 span 括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548450/

相关文章:

javascript - Jquery 将元素放入另一个元素之后

javascript - 弹出窗口/面板不会通过 javascript 出现在正确的位置

c++ - 用isalnum拆分字符串并存储到字符串 vector 中

java - 删除特殊字符前后的空格

c++ - 如何从 QString 中删除尾随空格?

php - 将相似的关键词归为一个关键词

php - UrlGenerationException(缺少 [Route] 所需的参数)

php - 将 table1 中的值放入下拉菜单中,然后放入新的 mySql 表中

php - 如何使用 PHP 和 HTML 将特定的表单数据插入到下一个网页的表单文本字段中?

javascript - 等待ajax响应相同的功能