2015-12-17 32 views
5

Mam około 1000 obrazów i tekstów z tą samą nazwą klasy i niestandardowym atrybutem. Nazwy klas to odpowiednio emotikony i emotikony. Atrybuty niestandardowe to odpowiednio emo-tag i emo-ascii.Zapełnianie tablicy elementami z różnych atrybutów HTML

Każde zdjęcie ma swojego partnera (obszar tekstowy) z dokładnie taką samą zawartością w swoim atrybucie niestandardowym.

Przykład:

emo-tag = "f-x" // for images 
emo-ascii = "f-x" // for textareas 

gdzie x oznacza liczbę od 0 do 999.

Mój skrypt przechwytuje atrybuty obrazów i co muszę bez problemu. Problem zaczyna się, gdy próbuję uzyskać wartość textarea, która ma dokładnie taką zawartość atrybutu jak obraz.

Oto mój kod:

$(function(){ 
var json = []; 

$('img').each(function(){ 
    var emoimg = $(this).attr("src"); 
    var emoalt = $(this).attr("alt"); 
    var emotag = $(this).attr("emo-tag"); 

    //Does not this supposed to capture the value of this specific textarea? 
    var emoascii= $('.emoticonlist').attr("emo-ascii",emotag).val(); 

     json.push({ 
      id : emotag, 
      name : emoalt, 
      img : emoimg, 
      content: emoascii  
     }); 

}); 
    var s = JSON.stringify(json); 
    $("#content").after("<div>" + s + "</div>"); 
}); 

Jak powiedziałem, prace kod, ale textarea schwytany i wepchnięta do tablicy jest tylko pierwszy z nich, a wszystkie elementy tablicy. Jak mogę osiągnąć to, czego chcę?

Prąd wyjścia:

[ 
{"id":"emo-0","name":"Smiley Face","img":"images/smiley-face.png","content":":)"}, 
{"id":"emo-1","name":"Big smile","img":"images/big-smile.png","content":":)"}, 
{"id":"emo-2","name":"Sad face","img":"images/sad-face.png","content":":)"}, 
... 
... 
... 
] 

Pożądany wyjściowa:

[ 
{"id":"emo-0","name":"Smiley Face","img":"images/smiley-face.png","content":":)"}, 
{"id":"emo-1","name":"Big smile","img":"images/big-smile.png","content":":D"}, 
{"id":"emo-2","name":"Sad face","img":"images/sad-face.png","content":":("}, 
... 
... 
... 
] 
+0

mógłbyś użyć 'kod blokowy' narzędzie podczas edycji, aby dać pracę skrzypce przykład? Jeśli nie uda się, aby to działało, to dołącz wystarczającą ilość html i takie, które umożliwią łatwe skrzypce. Dzięki –

+0

'$ ('. Emoticonlist'). Attr (" emo-ascii ", emotag)' ustawia atrybut. Nie jest to tak, jak chcesz (http://api.jquery.com/attr/). – Lucas

Odpowiedz

3

Korzystanie $('.emoticonlist').attr("emo-ascii",emotag), jesteś ustawienie atrybutu zamiast się element gdzie atrybut jest równy emotag. (http://api.jquery.com/attr/)

Może spróbuj wymienić linię

var emoascii= $('.emoticonlist').attr("emo-ascii",emotag).val(); 

z

var emoascii= $('.emoticonlist[emo-ascii=' + emotag +']').val(); 

(https://api.jquery.com/attribute-equals-selector/)

+0

Dzięki! W końcu działa! To było właśnie rozwiązanie. – iVoidWarranties

Powiązane problemy