我正在使用jquery进行更少的阅读切换,它将在文本中的第100个符号之后出现。
现在我有使用OL标签html中的第100个符号执行此操作的代码。它的工作方式与我想要的一样,但是标记中的第100个符号与文本中的第100个符号不同,因为它也计算标签。
public JsonResult GetClosedRMA()
{
//Server side Parameters
int start = Convert.ToInt32(Request["start"]);
int length = Convert.ToInt32(Request["length"]);
string searchValue = Request["search[value]"];
string sortColumnName = Request["columns["+ Request["order[0][colmun]"]+ "][name]"];
string sortDirection = Request["order[0][dir]"];
List<RMAclosedCase> rmalist = new List<RMAclosedCase>();
using (Namespace db = new Namespace())
{
rmalist = (from RH in db.RMA_History
join RS in db.RMAStatus on RH.StatusID equals RS.ID
where RH.SagesType == "LUK"
select new RMAclosedCase
{
Kundenavn = RH.Kundenavn
}).ToList();
int totalrows = rmalist.Count();
//Filter
if (!string.IsNullOrEmpty(searchValue))
{
rmalist = rmalist.Where(x => x.Kundenavn.ToLower().Contains(searchValue.ToLower())).ToList();
}
int totalrowsefterfiltering = rmalist.Count();
//Paging
rmalist = rmalist.Skip(start).Take(length).ToList();
return Json(new {data= rmalist,draw = Request["draw"], recordsTotal = totalrows,recordsFiltered = totalrowsefterfiltering },JsonRequestBehavior.AllowGet);
}
}
我试图通过从文本中获取子字符串来确定html文本中第100个符号的位置,但是子字符串可能会更快出现在html中,甚至被标签打断。 有没有办法修改我的代码,以便在文本的第100个符号后出现“省略号”?
答案 0 :(得分:0)
您还应该使用$(this).text()
来跟踪剩余的“可用”字符,并且在每次迭代时,都应该更新该值。
然后知道要插入标记的位置,可以搜索indexOf
您将显示的子字符串
类似的东西:
const maxShowChar = 100;
let showChar = maxShowChar;
const ellipsestext = "...";
const moretext = "Ещё";
const lesstext = "Скрыть";
$('.more').each(function () {
var textContent= $(this).text();
var content = $(this).html();
if (textContent.length > showChar) {
[...]
const textC = textContent.substr(0,showChar);
const c = content.substr(0, content.indexOf(textC));
[...]
}else{
showChar = showChar - textContent.length;
}
});