2011-08-18 8 views
5

मुझे यह करने के बारे में एक अस्पष्ट विचार है लेकिन मुझे आशा है कि अधिक अनुभवी देवताओं का एक आसान समाधान हो सकता है।जावास्क्रिप्ट पार्स एचटीएमएल, एंकर टैग संशोधित करें जिसमें छवियां

मेरे पास JSON फ़ीड से HTML कोड का एक स्टिंग है और जहां "ए" टैग के अंदर एक छवि के साथ एक "ए" टैग मौजूद है जिसे मैं संशोधित करना चाहता हूं और विशेषता जोड़ना चाहता हूं। उदाहरण:

<a style="color:000;" href="images/image.jpg"> 
    <img width="100" height="20" src="images/image_thumb.jpg" /> 
</a> 

मैं इसे होने के लिए परिवर्तन करना चाहते हैं:

<a style="color:000;" href="images/image.jpg" rel="lightbox" > 
    <img width="100" height="20" decoy="images/image_thumb.jpg" /> 
</a> 

तो "एक" टैग करने के लिए एक विशेषता जोड़ने और "img" टैग में एक विशेषता को संशोधित। एचटीएमएल कोड के भीतर शायद कई लिंक और छवियों के बिना और उनके आसपास के अन्य HTML कोड के बिना हो सकता है।

यह स्पष्ट करने के लिए कि यह पृष्ठ पर पहले से प्रस्तुत एचटीएमएल को संशोधित नहीं कर रहा है, यह कोड प्रस्तुत करने से पहले कोड की एक स्ट्रिंग को संशोधित कर रहा है।

यहाँ अत्यंत स्पष्ट है प्रश्न में JSON फ़ीड है: http://nicekiwi.blogspot.com/feeds/posts/default?alt=json

HTML कोड है टैग हैं पर "फ़ीड> प्रवेश> सामग्री> $ टी" पाए जाते हैं

Am वर्तमान में Mootools के साथ काम 1.3

कोई विचार? धन्यवाद।

+0

नियमित रूप से अभिव्यक्तियों को शामिल करने वाले उत्तरों को देखना अच्छा लगेगा ... –

+2

jQuery में एक हवा होगी लेकिन हां, आप mootools का उपयोग कर रहे हैं! – Mrchief

+1

मुझे mootools के बारे में निश्चित नहीं है, लेकिन jquery में आप आसानी से RemoveAttr और attr विधियों का उपयोग करके इसे प्राप्त कर सकते हैं। आपको बस $ ("ए") करना है। Attr ("rel", "lightbox") और var url = $ (img) .attr ("src"); $ (Img) .removeAttr ("src");। $ ("Img") attr ("प्रलोभन", यूआरएल); – swordfish

उत्तर

1

सबसे पहले, एक नए तत्व उस पृष्ठ पर मौजूद नहीं है में रख, तो यह हमेशा की तरह संशोधित:

var container = new Element("div", { html: yourHTML }); 
container.getElements("a img").forEach(function(img){ 
    var link = img.getParent("a"); 
    img.decoy = img.src; 
    img.removeAttribute("src"); 
    link.rel = "lightbox"; 
}); 

डेमो यहाँ: http://jsfiddle.net/XDacQ/1/

0

सीधे जे एस में

var a = document.createElement('div'); 

// put your content in the innerHTML like so 
a.innerHTML = '<a style="color:000;" href="images/image.jpg"><img width="100" height="20" src="images/image_thumb.jpg" /></a>'; 

var b = a.firstChild; 
b.rel = 'lightbox'; 
var c = b.firstChild; 
c.setAttribute('decoy', c.src); 
c.src = null; 

// now you have your a tag 
var newA = a.innerHTML; 
0

डंबेस्ट रेगेक्स

var string = '<a style="color:000;" href="images/image.jpg">="images/image_thumb.jpg" /></a>', 
    text = ''; 

text = string.replace('href', 'rel="lightbox" href'); 
text = text.replace('src', 'decoy');