Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery或php在块内换行,但不包括span_Php_Jquery - Fatal编程技术网

jquery或php在块内换行,但不包括span

jquery或php在块内换行,但不包括span,php,jquery,Php,Jquery,我有块级标记中的html;我的搜索结果将匹配的句子包装在标签中,如下所示: <p> Some text. More text. <span class=match>Sentence with match.</span> More text. </p> 编辑: 我认为人们是对的,我需要使用与标记匹配相同的代码来标记“nomatch”。要隐藏它,您只需为nomatch类提供CSS属性display:none。当你悬停或单击某个地方查看更多上下文时,可

我有块级标记中的html;我的搜索结果将匹配的句子包装在标签中,如下所示:

<p>
Some text. More text. <span class=match>Sentence with match.</span> More text.
</p>
编辑:
我认为人们是对的,我需要使用与标记匹配相同的代码来标记“nomatch”。

要隐藏它,您只需为nomatch类提供CSS属性display:none。当你悬停或单击某个地方查看更多上下文时,可以加入一些javascript使其淡入。这应该可以做到。将
$('p')
替换为所需的任何选择器

$('p')。每个(函数(){
$.each(this.childNodes,function(i,child){
如果(child.nodeType==3){//text节点
$(儿童)。之前(
$('').text(child.data)
).remove();
}
});
});

我需要一种添加nomatch跨距的方法。因此,给定第一段代码,如何使用jquery或php生成第二段代码?在匹配代码中添加一个else:例如,if(match){surround with display span}else{surround with hide span}我认为这不管用:如果您使父级显示:none,那么子级,这里span class=match不能被设置为“display:inline”——它也会被隐藏。您可以通过可见性:none设置父级,然后通过可见性:visibility设置子级,但这会留下隐藏文本所在的所有空间…您介意发布一小段用于匹配文本的代码吗?我想看看您已经拥有的添加
的代码。这将帮助我确定如何最好地处理不匹配的文本。“span”是一个唯一的内联标记,因此我不必担心不正确的嵌套标记1。)“向我展示代码”的定义与我的不同。我理解您正在做/试图做什么,但我希望看到最适合您的代码库和请求的解决方案的代码更改/添加的代码。但是,如果您不能显示代码(出于法律原因、保密协议等),则可以,但您应该声明。2.)在处理HTML时,您应该始终担心不正确的嵌套标记(通常)。HTML的不严格性往往会在人们放松警惕时引起问题。也许你关于“向我展示代码”的说法是对的,但其中有很多副作用(处理搜索字符串、标记为不活动的段落等),并且需要花费大量精力才能使其呈现……这非常有趣,但它不是假设不在“匹配”范围内的文本没有HTML代码吗?但是可能会有粗体、斜体、跨距等等。@JamieKatz如果文本中没有
.match
,这种方法很快就会变得难看。匹配可以在结构内部,如
No match!半场比赛!12345…
。仍然可能:递归地将
.nomatch
添加到所有内容中,然后从所有
.match
对象及其父对象中删除
.nomatch
。但是值得吗?我认为你应该重新考虑你的问题。
<p>
<span class=nomatch>Some text. More text. </span><span class=match>Sentence with match.</span><span class=nomatch> More text.</span>
</p>
$('.match').wrapOutside()