Если вы хотите ДОБАВИТЬ НЕКОТОРЫЙ ТЕКСТ В КОНКРЕТНЫХ ЛИНИЯХ, вы можете сначала прочитать весь файл, добавить текст туда, где хотите, а затем переписать все, как в коде ниже:
public static void addDatatoFile(String data1, String data2){
String fullPath = "/home/user/dir/file.csv";
File dir = new File(fullPath);
List<String> l = new LinkedList<String>();
try (BufferedReader br = new BufferedReader(new FileReader(dir))) {
String line;
int count = 0;
while ((line = br.readLine()) != null) {
if(count == 1){
//add data at the end of second line
line += data1;
}else if(count == 2){
//add other data at the end of third line
line += data2;
}
l.add(line);
count++;
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
createFileFromList(l, dir);
}
public static void createFileFromList(List<String> list, File f){
PrintWriter writer;
try {
writer = new PrintWriter(f, "UTF-8");
for (String d : list) {
writer.println(d.toString());
}
writer.close();
} catch (FileNotFoundException | UnsupportedEncodingException e) {
e.printStackTrace();
}
}
const countOffs = $('span.clsCatOffCount');
countOffs.each((idx, el) => {
const content = el.innerHTML;
el.innerHTML = content.replace(/\(|\)/g, '')
});
Или просто используйте ответ Тайлера с заменой регулярного выражения выше
Это то же самое, потому что вы используете HTML первого элемента с этим классом, вы должны циклически обработать их и заменить следующим образом:
$('span.clsCatOffCount').each((i,e) => {
var newHtml = $(e).html().replace(/\((\w+)\)/g, '$1');
$(e).html(newHtml)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="SbCatMenu" class="__web-inspector-hide-shortcut__">
<dl id="dlCatLvl1" class="clsCatLvl1 clsOffCat1">
<dd class="clsCatTree1 clsCTree1" id="CatImg1"><a href="../OeCart/OeFrame.asp?PmSess1=1182517&SXREF=1">Backdrop<span class="clsCatOffCount"> (2)</span></a></dd>
<dd class="clsCatTree1 clsCTree1" id="CatImg2"><a href="../OeCart/OeFrame.asp?PmSess1=1182517&SXREF=2">Banner Stands<span class="clsCatOffCount"> (12)</span></a></dd>
<dd class="clsCatTree1 clsCTree1" id="CatImg3"><a href="../OeCart/OeFrame.asp?PmSess1=1182517&SXREF=3">Data Sheet<span class="clsCatOffCount"> (16)</span></a></dd>
<dd class="clsCatTree1 clsCTree1" id="CatImg4"><a href="../OeCart/OeFrame.asp?PmSess1=1182517&SXREF=4">Giveaways<span class="clsCatOffCount"> (9)</span></a></dd>
<dd class="clsCatTree1 clsCTree1" id="CatImg5"><a href="../OeCart/OeFrame.asp?PmSess1=1182517&SXREF=5">Table Top<span class="clsCatOffCount"> (0)</span></a></dd>
</dl>
</div>
[116 ] Проблема с вашим кодом заключается в том, что при использовании .html()
- для чтения HTML-код элемента будет оценивать только первый элемент в выборе, который в вашем случае равен (2)
.
Однако, используя .html("hello world")
- , установите , HTML-элемент обновит все элементы в выделении.
Следовательно, вы устанавливаете все элементы на .html()
первого.
Вместо этого передайте функцию методу jQuery .html()
для оценки каждого из них в каждом конкретном случае:
$(".clsCatOffCount").html(function() {
return $(this).html().replace("(", "").replace(")", "");
});
[ 111]