PDA

View Full Version : مبتدی: انتخاب یک تگ در یک متغیر حاوی کد



abolfazl-z
جمعه 25 اسفند 1391, 17:05 عصر
سلام دوستان :لبخندساده:


var a = '<div id="d1"></div><div id="d2"></div>;'

چطوری میشه در متغیر a تگی که آی دی d2 هست را انتخاب کنیم (مثلا innerHTML اش)؟

arashnaderi
جمعه 25 اسفند 1391, 19:21 عصر
سلام.
شما هدفتون از این کار چیه؟ هدفتونو بگین شاید راه حل ساده تر و منطقی تری وجود داشت

abolfazl-z
جمعه 25 اسفند 1391, 20:51 عصر
گفتم شاید ممکن باشه داده ای رو دریافت کنم که اچ تی ام ال باشه !

arashnaderi
جمعه 25 اسفند 1391, 22:26 عصر
راستش هرچی فکر کردم کاربردشو متوجه نشم:لبخند:
فکر کنم با این کارت راه بیوفته


<script>
var str = '<div id="d1">salam</div><div id="d2">hi</div><div id="d3">hello</div>';
var patt = new RegExp('<div id="d2">', "gi");
if (patt.test(str) == true)
{
alert(str.substring(patt.lastIndex,str.indexOf("</div>", patt.lastIndex)));
}
</script>

abolfazl-z
شنبه 26 اسفند 1391, 09:35 صبح
میشه یکم بیشتر توضیح بدین ؟ :اشتباه:

arashnaderi
شنبه 26 اسفند 1391, 14:30 عصر
میشه یکم بیشتر توضیح بدین ؟ :اشتباه:

نه نمیشه :لبخند:
من از عبارات منظم( Regular Expresion) استفاده کردم
خط


var patt = new RegExp('<div id="d2">', "gi"); میاد ابتدا یک شی از نوع عبارت منظم تعریف میکنه. در واقع میگیم میخوایم دنبال چی بگردیم
خط


patt.test(str)تابع test توی جاوا اسکریپت میاد توی رشته ی str دنبال patt میگرده و اگه اونو پیدا کرد ، true برمیگردونه. خب سپس توسط دستور


patt.lastIndexشماره اندیسی که تونسته رشته رو پیدا کنه رو برمیگردونه. در اینجا اندیس 37. در واقع روی حرف h کلمه ی hi توقف میکنه.
دستور


str.indexOf("</div>", patt.lastIndex)این دستور میاد توی رشته ی str دنبال </div> میگرده و اگه اونو پیدا کنه شماره ی اندیسشو بر میگردونه. در این مثال 39. پارامتر دوم این تابع اندیس شروع جستجو می باشه. در واقع بهش میگیم از اندیس 37 به بعد برو بگرد
خب حالا کار تمومه.کافیه توسط دستور substring بیایم یک زیر رشته از اندیس 37 تا 39 برگردونیم. تابع substring دوتا ورودی میگیره که اولی اندیس شروع و دومی اندیس توقف می باشد
وای چقدر حرف زدم:متعجب:

abolfazl-z
شنبه 26 اسفند 1391, 19:34 عصر
دوست من مرسی :قلب:

ولی یک چیز ؟

" تابع test توی جاوا اسکریپت میاد توی رشته ی str دنبال patt میگرده و اگه اونو پیدا کرد ، true برمیگردونه. خب سپس توسط دستور"

اینجا یعنی چی که دنبال patt میگرده ؟:متفکر:

arashnaderi
شنبه 26 اسفند 1391, 22:02 عصر
خواهش میکنم.:لبخندساده:
توی دستور


var patt = new RegExp('<div id="d2">', "gi");ما در واقع دنبال <"div id="d2> قراره بگردیم. خب الان متغیر (patt( pattern یا همان الگوی جستجومون شامل این مقداره. تابع test هم میاد همون الگومونو توی رشته ای که خواستیم(str) جستجو میکنه اگه پیداش نکرد flase برمیگردونه وگرنه true :لبخندساده:

abolfazl-z
یک شنبه 27 اسفند 1391, 10:12 صبح
دوست من واقعا مرسی

ولی میدونی بدرد چی میخوره !

بدرد زمانی میخوره که ما داده ای را با آجاکس دریافت کردیم ممکن بصورت اچ تی ام ال باشه و ما فقط یک قسمت از اون رو بخواهیم استفاده کنیم:تشویق: