استخراج النص في عنصر باستخدام JQuery
-
06-07-2019 - |
سؤال
أريد استخراج النص الموجود داخل العنصر باستخدام JQuery
<div id="bla">
<span><strong>bla bla bla</strong>I want this text</span>
</div>
أريد فقط النص "أريد هذا النص" بدون العلامة القوية.كيف أقوم بذلك؟
المحلول
وهذه محاولة ...
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#bla span").contents().each(function(i) {
if(this.nodeName == "#text") alert(this.textContent);
});
});
//]]>
</script>
وهذا لا يحتاج إلى إزالة أي العقد الأخرى من السياق، وسيعطي فقط لأنك عقدة النص (ق) على كل التكرار.
نصائح أخرى
وهذا يفعل ذلك (اختبار):
var clone = $("#bla > span").clone();
clone.find('strong').remove();
alert(clone.text());
والاختلاف في طريقة karim79 في:
$("span").clone().find("strong").remove().end().text();
وأو إذا كنت ترغب فقط في النص الجذر دون معرفة ما هي علامات أخرى فيه:
$("span").clone().children().remove().end().text();
ويزال طويلا بعض الشيء، ولكن أعتقد أن هذا حول باختصار كما يمكنك الأمل.
var textFromSpanWithoutStrongTag = $('div#bla > span').text();
محدث:
var textFromSpanWithoutTextFromStrongTag =
$('div#bla > span').text().replace($('div#bla > span > strong').text(), '');
محدث:
var text = '';
$("div#bla > span").contents().each(function () {
if(this.nodeType == 3) text = text + this.nodeValue; });
تم اختباره في FF3، IE8، O10b على:
<div id="bla">
<span>
<strong>bla bla bla</strong>
I want this
<strong>bla bla</strong>
text
<span>bla bla bla</span>
</span>
</div>
لا تنتمي إلى StackOverflow