我只是想在段落中获取标记元素(标记)的索引位置。 例如:
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CHECKCONS);
if ($res !== TRUE) {
switch($res) {
case ZipArchive::ER_NOZIP:
die('not a zip archive');
case ZipArchive::ER_INCONS :
die('consistency check failed');
case ZipArchive::ER_CRC :
die('checksum failed');
default:
die('error ' . $res);
}
}
我试图在div中模拟“ ctrl + f ”功能。所以即时通讯使用名为 textselect 的插件来选择/突出显示 我的搜索结果:
<p>
Lorem ipsum dolor ipsum sit <mark>amet</mark>
consectetur adipisicing elit, sed <mark>amet</mark>
</p>
但我不知道如何才能获得 startposition ...
我试过了:
var startPosition = textHolder.indexOf(textToSelect);
var endPosition = startPosition + textToSelect.length;
$.textSelect('setRange', {
start: startPosition,
startElement: $("p"),
end : endPosition,
endElement : $("p")
});
并返回34这将是第一个标记的起始位置,但如果将textholder更改为var textHolder = $('div').find('p').contents("mark").eq(0);
$('div').find('p').html().indexOf(textHolder.html())
则再次返回34。如何获得每个标记子字符串的 indexOf ?
答案 0 :(得分:0)
我相信这基本上就是你要找的东西:
var paragraph = $("#paragraph").html();
var startIndex = paragraph.indexOf("<mark>");
var endIndex = paragraph.indexOf("</mark>");
如果你想动态地这样做,只需将它放在一个循环中,每次都是来自endIndex的子串。像这样:
var paragraph = $("#paragraph").html();
var lastIndexFound = false;
while(!lastIndexFound)
{
var startPostition = paragraph.indexOf("<mark>");
var endPosition = paragraph.indexOf("</mark>");
if (endPosition == -1)
{
lastIndexFound = true;
break;
}
$.textSelect('setRange', {
start: startPosition,
startElement: $("p"),
end : endPosition,
endElement : $("p")
});
paragraph = paragraph.substring(endPosition, paragraph.length);
}
答案 1 :(得分:0)
我建议您在段落中添加一个ID以及标记为&#39;标签,然后将文本作为变量获取,如下所示:
var n1 = paragraph.indexOf('<marked id="m1">');
var n2 = paragraph.indexOf('<marked id="m2">');
然后您可以使用以下方法获取子字符串的起始位置:
m1_string_name.length
如果您需要获取结束索引,可以保存标记为&#39;的其他字符串。标记与之前描述的类似,并将m2_string_name.length
属性添加到您的n1值,将ifconfig | grep bro | awk '/inet/ {print $2}'
属性添加到您的n2值。
干杯!