2015-07-06 3 views
-5

Возможно ли получить src с метки img? У меня есть объект, который нужно удалить Пример значения тега изображенияКак изменить объект json?

Input это

[ 

    { 
     "N": "ABC corp", 
     "a": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "c": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "r": "<img src=\"/img/samples/flag_green.gif\" alt=\"green\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "p": "<img src=\"https://a.na7.visual.force.com/resource/1260007793000/a/iconset/gray.gif\" alt=\" \" height=\"16\" width=\"1\" border=\"0\"/>" 

    } 
] 

Вывод, который я хочу это

[ 
    { 
     "N": "3M", 
     "a": "red", 
     "c": "red", 
     "r": "red", 
     "p": "gray" 

    }, 

    { 
     "N": "ABC corp", 
     "a": "red", 
     "c": "red", 
     "r": "green", 
     "p": "gray" 

    } 
] 

Как я могу создать этот новый объект из данного входного объекта, если это значение свойства, которое я хочу, находится в атрибуте src тега img? Мне нужно проверить атрибут src тега img в свойствах входного объекта. Если это flag_red.gif, тогда значение в выходном объекте должно быть red. Если это flag_green.gif, тогда значение в выходном объекте должно быть зеленым. Если это gray.gif, тогда значение в выходном объекте должно быть серый.

+0

, пожалуйста, комментарий, если я не прав .. !! – Shruti

+0

ОК я улучшу – Shruti

+1

Возможно, вы сделаете хотя бы некоторые *** небольшие усилия, чтобы не сделать ваш вопрос похожим на дерьмо? И, конечно, что вы пробовали? – nicael

ответ

-1

Ниже показано, как изменить свои данные, основываясь на атрибутах alt тегов изображений, дающих вам общую идею. С небольшими усилиями вы можете легко изменить это, чтобы вместо этого использовать атрибут src.

var data = [{ 
    "N": "3M", 
     "a": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "c": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "r": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "p": "<img src=\"https://a.na7.visual.force.com/resource/1260007793000/a/iconset/gray.gif\" alt=\" \" height=\"16\" width=\"1\" border=\"0\"/>" 

}, { 
    "N": "ABC corp", 
     "a": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "c": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "r": "<img src=\"/img/samples/flag_green.gif\" alt=\"green\" height=\"16\" width=\"16\" border=\"0\"/>", 
     "p": "<img src=\"https://a.na7.visual.force.com/resource/1260007793000/a/iconset/gray.gif\" alt=\" \" height=\"16\" width=\"1\" border=\"0\"/>" 

}]; 

var modified = data.reduce(function (outArr, entry) { 
    var outObj = {}; 
    for (key in entry) { 
     if (entry.hasOwnProperty(key)) { 
      var item = entry[key]; 
      var node = document.createElement("div"); 
      node.innerHTML = item; 
      var img = node.querySelector("img"); 
      outObj[key] = img ? img.alt : item; 
     } 
    } 
    outArr.push(outObj); 
    return outArr; 
}, []); //[{"N":"3M","a":"red","c":"red","r":"red","p":" "},{"N":"ABC corp","a":"red","c":"red","r":"green","p":" "}] 
+0

Пример gre.gif, который он не будет работать с этим ответом. –

+0

@JohnCarpenter Я вижу, что вы не удосужились прочитать текст, предшествующий коду. – Nit

+0

Даже с атрибутом 'src' это не сработает. gray.gif не имеет префикса "flag_" –

-1

Вам просто нужно проверить <img> тега, и если он сопрягает затем принять substring, чтобы получить имя файла и установить его обратно в JSON.

Working Plunker

var obj=[ 
{ 
    "N": "3M", 
    "a": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
    "c": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
    "r": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>" 
}, 
{ 
    "N": "ABC corp", 
    "a": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
    "c": "<img src=\"/img/samples/flag_red.gif\" alt=\"red\" height=\"16\" width=\"16\" border=\"0\"/>", 
    "r": "<img src=\"/img/samples/flag_green.gif\" alt=\"green\" height=\"16\" width=\"16\" border=\"0\"/>" 
} 
]; 

for(var k in obj){ 
    for (name in obj[k]) { 
     if(obj[k][name].indexOf("<img") != -1) { 
      // I have made logic based on "flag_", this can be change as per your requirement. 
      var src= obj[k][name].substring(obj[k][name].indexOf("flag_")+5,obj[k][name].indexOf(".gif")); 
      obj[k][name]=src; 
     } 
    } 
} 
+0

Случайная строка может также содержать _ " Nit

Смежные вопросы