У меня есть таблица с некоторым содержанием. Не все строки имеют одинаковое содержание, но некоторые из них будут иметь первое предложение, например,
Привет, как дела, Джон?
Привет, как ты, Мэри?
Тот же шаблон с другим именем.
Строка будет выглядеть ниже. И содержание в промежутке происходит из базы данных. Да, текст с тегами разрыва также.
<tr style="background-color:#F7F7f7">
<td>
<span id="sp1">Hello How Are you? John <br/><br/>Some text blalablalalbal <br/><br/>"You are Awesome" <br/><br/>----What can I do for you? <br/><br/></span><br />
<span id="sp2">XYZABCD</span><br />
<span id="sp3">12345669060 Some Loren ipsum</span><br />
</td>
</tr>
Я хочу удалить первое предложение из строк, в которых есть Привет, как дела, xyzname? .
Итак, у меня есть следующий код, который работает и делает то, что я хочу:
<script type="text/javascript">
$(function () {
$("#btnCleanUp").click(function () {
$("table tr td").each(function () {
var elem = $(this).find('span:contains("Hello How Are you?")');
var alltxts = elem.contents().filter(function () {
var retm = true;
var str = this.nodeValue;
if (str != null) {
var bstr = str.indexOf("Hello How Are you?");
$(this).nodeValue = "";
if (bstr >= 0) {
retm = false;
}
}
var ret = (this.nodeType == 3) && retm;
return ret;
});
elem.text("");
elem.html("<br/>");
$(alltxts).each(function () {
var hm = $(this);
elem.html(elem.html() + hm[0].nodeValue + "<br/><br/>");
});
});
});
});
</script>
Вот пример демо .
Вопрос:
Могу ли я сделать это лучше?
Я хочу упростить приведенный выше блок кода, если это возможно, я имею в виду логику, потому что я думаю, что это можно сделать лучше, учитывая потенциал jquery.
Я готов сделать это в C #, если это лучший способ. Пожалуйста, предоставьте образец кода.