我想在文本中檢測的字符,如果發現包裹在一個HTML元素之前的單詞,並刪除字符。之前如何檢測詞「:」和「跨度」包裝使用jQuery?
實施例:
Case:
變得
<span class="th">Case</span>
方法
我可以利用檢測的:
存在:
if (str.indexOf(':') > -1)
要我使用之前獲得了這個詞:
var th = str.split(':')[0];
要在我嘗試過的元素包裹着一句話:
var th_wrap = "<span class='th'></span>";
$(th).wrap(th_wrap);
不工作。 要刪除:
我想:
th.replace(':', '');
這也不起作用。
要稍微複雜一點,我要趕的someword:
任何次數,而不只是第一個。
我會很感激任何指針,歡呼聲。 (JavaScript或jQuery的)
代碼片段
var str = $('.target').html();
if (str.indexOf(':') > -1) {
var th = str.split(':')[0];
th.replace(':', '');
var th_wrap = "<span class='th'></span>";
$(th).wrap(th_wrap);
}
th { font-weight: bold; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="target">
Case 1:
<br />some text
<br />some more text
<br />even more text
<br />
<br />Case 2:
<br />some text
<br />some more text
<br />even more text
</p>
必須是一個DOM元素。不是一個字符串。 如果你試圖用你想要的''代替第一個case,最好是得到'.target'的第一個孩子並替換它。 – Mojtaba