PDA

View Full Version : سوال: اضافه کردن alt , title برای تگهای img که فاقد این دو خصیصه هستن



eyes_shut_number1
یک شنبه 05 دی 1389, 14:33 عصر
سلام دوستان و اساتید
می میخوام alt , title برای تگهای img که فاقد این دو خصیصه هستن رو اضافه کنم

چطور میتونم این کار رو انجام بدم؟

با Regex چطوری میشه؟

pedram_ns
یک شنبه 05 دی 1389, 17:42 عصر
IMG این خاصیت ها رو داره:


<img alt="عنوان" src="" title="عنوان" />

eyes_shut_number1
دوشنبه 06 دی 1389, 13:40 عصر
دوست عزیز از توجه شما ممنونم. واقعا فکر میکردین اینارو نمیدونم؟ :دی!
لطفا واسه این که تعداد پست هات بالا بره پست نزنید.

Vahid_moghaddam
دوشنبه 06 دی 1389, 13:47 عصر
دوست عزیز از توجه شما ممنونم. واقعا فکر میکردین اینارو نمیدونم؟ :دی!
لطفا واسه این که تعداد پست هات بالا بره پست نزنید.
سوال مفهوم نیست.

لطفا: در مورد اینکه چرا بقیه پست می زنند، قضاوت نکنید.

eyes_shut_number1
دوشنبه 06 دی 1389, 16:09 عصر
شما بگید کم قسمت نا مفهوم هست؟
اگه سوال مفهوم نبود مکیتونستن بپرسن منظور چیه نه این که ...
به نظرم اینا رو لطف کنید تو پیغام خصوصی بدین. انیجا جواب سوال میدن نه پیام اخلاقی

prankster
دوشنبه 06 دی 1389, 21:46 عصر
دقیقا مفهوم نیست که چه عملی می خواهید انجام دهید! آیا context اجرایی برنامه client-side است یا server-side؟ آیا رشته ای که می خواهید عمیات را روی آن انجام دهید html است یا xml و یا کد mark-up در سطح asp است؟ و به فرض انجام کار title attribute را با چه چیزی می خواهید مقدار دهی کنید؟

روش های متنوعی برای انجام این کار می توان پیاده کرد، مثلا در سطح client-side و با فرض کد html می توان از DOM برای دسترسی به tag های img استفاده کرد:


var tags = document.getElementsByTagName("img");
var len = tags.length;
while (len--) if (tags[len].title == '') tags[len].title = "blah blah";


اگر به کد مورد نظر به صورت xml دسترسی دارید، مثلا از طریق XMLHttpRequest در سمت client و یا WebClient یا XMLDocument در سمت سرور XPath بهترین گزینه برای تفسیر xml است:
کد XPath:

"//img[not(@alt)]"
مثلا در firefox کد بالا به صورت زیر انجام می شود:


var iterator = document.evaluate("//img[not(@alt)]", document, null, XPathResult.ANY_TYPE, null);
while (item = iterator.iterateNext()) item.title = "blah blah";


در صورتی که کل عملیات در سمت سرور و با ASP.Net مد نظر باشد در صورتی که کنترل ها دارای id باشند می توان با find کردن control های از جنس HtmlImage و تغییر title عملیات را انجام داد

parse کردن html با استفاده از Regular Expressions واقعا بیشتر شبیه جهنم می ماند، کد های html از استاندارد های متنوعی پیروی می کنند، tag ها در html ساده متفاوت با xhtml هستند، مثلا img را می توان به صورت <img> یا </img> و یا <img></img> نوشت، attribute ها هم استاندارده ای مختلفی دارند که مثلا title='blah blah' یا title="blah blah" و یا title=blah blah نوشته می شود، به علاوه html را می توان کاملا پشت سر هم و بدون white-space یا در خطوط جدا نوشت. در هر کدام از این سناریو ها Regular Expression با فرمت متفاوتی پیاده سازی خواهد شد که نهایتا شاید ارزش پیاده شازی اش را نداشته باشد...