2011-02-25 12 views
8

bu tarafından seçilen (2) eleman bir seçim vardır:JQuery hareket ederler/özel bir karaktere sahip şeritler (elemanları) birleştirme (tire)

$(this).parents("tr:first").children("td").children("span"); 

bunu yapmak:

$(this).parents("tr:first").children("td").children("span").text(); 

yayındaki (a ve b) metinleri birlikte (ab) olarak birleştirilir ve bu da neredeyse istediklerimi

Ancak şimdi onları (-) arasına bir tire (-) ekleyerek birleştirmek istiyorum b) Ben Bu çalıştı, ancak bu işe yaramazsa:

böyle Belki bir şey
$(this).parents("tr:first").children("td").children("span").join(" - "); 
+1

elements.you doğrudan değişkenle kullanamaz dizisi ile kullanılan birleştirme. – Vivek

+0

ah, +1 ......... – Michel

cevap

17

Kullanım $ .map:

$.map(
    $(this).parents("tr:first").children("td").children("span"), 
    function(element) { 
     return $(element).text() 
    }) 
    .join(" - "); 
+4

veya bu yapı: '$ (this) .parents (" tr: first "), çocuklar (" td "), çocuklar (" span "). function (i, element) {return $ (öğe) .text()}) get(). join ("-") ' – aavezel

+0

Evet! çalıştı. 'haritayı' bilmiyordum, şimdi bakacak. – Michel

5

...

var m = []; 
$(this).parents("tr:first").children("td").children("span").each(function(index, element) {m.push(element.text());}); 
return m.join(" - "); 
1

Bunun bir hissedebilirsiniz deneyebilirsiniz biraz ağır karmaşık değil.

$(this).parents("tr:first td span:eq(0)").text() + " - " + $(this).parents("tr:first td span:eq(1)").text() 
0
$(this) 
    .parents('tr:first') 
    .children('td') 
    .children('span') 
    .append('-') // append hyphen to each span 
    .text(); 
İlgili konular