سؤال

أريد استخراج النص الموجود داخل العنصر باستخدام 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top