الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الجافا سكربت مع nodeValue

بدأه أبو ذر المصري في 20 سبتمبر 2013 · 6 رد · 1,164 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
السلام عليكم ورحمة الله وبركاته

أخي الكريم

إذا كنت من محترفي الجافا سكربت فأرجو ألا تبخل ببعض وقتك في الرد على مشكلتي

حيث أن لدي الكود التالي


<p id="list" style="white-space:nowrap;width:7.5em;border:1px solid red;overflow:hidden;text-overflow:ellipsis">محمد أحمد محمود مختار</p></div>

<div> </div>

<div><script>document.write(document.getElementById("list").firstChild.nodeValue);</script>


 

ستكون النتيجة هي ظهور العبارة الأولى محمد أحمد محمود م... وظهور العبارة الثانية محمد أحمد محمود مختار

المشكلة هي أنني أريد كود جافا سكربت يستخلص من الفقرة الأولى العبارة محمد أحمد محمود م... أو العبارة محمد أحمد محمود م

بارك الله في كل من حاول مساعدتي في حل هذه المشكلة

#2
أبو ذر المصري كتب:

 

السلام عليكم ورحمة الله وبركاته
أخي الكريم
إذا كنت من محترفي الجافا سكربت فأرجو ألا تبخل ببعض وقتك في الرد على مشكلتي
حيث أن لدي الكود التالي
<p id="list" style="white-space:nowrap;width:7.5em;border:1px solid red;overflow:hidden;text-overflow:ellipsis">محمد أحمد محمود مختار</p></div>
<div> </div>
<div><script>document.write(document.getElementById("list").firstChild.nodeValue);</script>
 
ستكون النتيجة هي ظهور العبارة الأولى محمد أحمد محمود م... وظهور العبارة الثانية محمد أحمد محمود مختار
المشكلة هي أنني أريد كود جافا سكربت يستخلص من الفقرة الأولى العبارة محمد أحمد محمود م... أو العبارة محمد أحمد محمود م
بارك الله في كل من حاول مساعدتي في حل هذه المشكلة

 

 

الكود:

<html dir="rtl">
<head>
<title>Get tag value by javaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function getElemVa(elem) {
var para = document.getElementById(elem);
// var text = para.firstChild.nodeValue;
var txt = document.getElementById(elem).firstChild.nodeValue;
document.getElementById('someplace').innerHTML = txt;
}
</script>
</head>
<body style="margin: 2em;"> 
<button onclick="getElemVa('list');">انقرني</button>
<p id="list" style="white-space:nowrap;width:7.5em;border:1px solid red;overflow:hidden;text-overflow:ellipsis;">محمد أحمد محمود مختار</p>
<div id="someplace"> ....... </div>
<script>

</script>

</body>
</html>

المخرجات:

 

محمد أحمد محمود مختار

محمد أحمد محمود مختار
 
 
تحياتي اليك

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3

جزاك الله خيرا

لكن الواضح أنني لم أستطع توصيف مشكلتي بصورة جيدة

أخي الكريم

أنا أريد من الجافا سكربت استخلاص المقطع محمد أحمد محمود م أو المقطع محمد أحمد محمود م... وليس المقطع محمد أحمد محمود مختار

وذلك لأني بعد حصولي على المقطع المطلوب سوف أرسله بالجافا سكربت إلى صفحة بي إتش بي لإجراء بعض المعالجات عليه

#4
أبو ذر المصري كتب:

جزاك الله خيرا

لكن الواضح أنني لم أستطع توصيف مشكلتي بصورة جيدة

أخي الكريم

أنا أريد من الجافا سكربت استخلاص المقطع محمد أحمد محمود م أو المقطع محمد أحمد محمود م... وليس المقطع محمد أحمد محمود مختار

وذلك لأني بعد حصولي على المقطع المطلوب سوف أرسله بالجافا سكربت إلى صفحة بي إتش بي لإجراء بعض المعالجات عليه

 

 

اري انك تسببت في توليد مشكلة ثم تحاول حلها، كيف؟

سيناريو حل1:

بدﻻ من ان ترسل للعميل النص: محمد أحمد محمود مختار  أو الذي يظهر بعد تنسيقة كــ: محمد أحمد محمود م... ارسل له مباشرة الجملة اﻻخيرة (سأوفر لك حلا لكيفية ارسلة بــPHP ﻻحقا) ومن ثم فأن استخلاص النص بالطريقة التي بمشاركتي السابقة تعمل بشكل ممتاز.

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

أنت تستخدم خواص لغة CSS لإخفاء جزء من النص , لهذا سيصعب تحديد الجزء الظاهر من الجزء المخفي لذا يفضل إرسال النص كامل للغة PHP ومعالجته على الخادم كما أشار الزميل محمد أو إستخدام لغة javaScript لإقتطاع جزء من النص الأصلي وإخفاء الباقي وإظهار هذا على المتصفح و إرساله للمعالجة .

 

كود الإخفاء سيكون على النحو التالي:

<p id="list">محمد أحمد محمود مختار</p>
<script>
    var newText = document.getElementById("list").textContent;
    newText = newText.substr(0,17)+' ...';
    document.getElementById("list").textContent = newText;
</script>
1

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#6
ahmedsaoud31 كتب:

 

أنت تستخدم خواص لغة CSS لإخفاء جزء من النص , لهذا سيصعب تحديد الجزء الظاهر من الجزء المخفي لذا يفضل إرسال النص كامل للغة PHP ومعالجته على الخادم كما أشار الزميل محمد أو إستخدام لغة javaScript لإقتطاع جزء من النص الأصلي وإخفاء الباقي وإظهار هذا على المتصفح و إرساله للمعالجة .

 

كود الإخفاء سيكون على النحو التالي:

<p id="list">محمد أحمد محمود مختار</p>
<script>
    var newText = document.getElementById("list").textContent;
    newText = newText.substr(0,17)+' ...';
    document.getElementById("list").textContent = newText;
</script>

جزاك اله خيرا أخي الكريم

لكني أريد اقتطاع ما عرضه داخل المتصفح 7.5em علما بأن النص سيكون متغيرا وليس نص ثابت

#7

اقتطاع النص يختلف من حين لاخر حسب طول الجمله المكتوبه يعني على هوا طلبك اظن ان هاذا الكود يكفى ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <title>Tect code</title>
<script type="text/javascript">
    function get_txt()
    {
        var str = "محمد احمد محمود مختار";
        document.getElementById("res").innerHTML = str.substr(0,17);
    }
</script>
    </head>

    <body onload="get_txt()">
<b id="res"></b>
    </body>
</html>

 لا اله الا الله محمد رسول الله

مواضيع مشابهة