2014-01-28 70 views
0

我希望這是有道理的。我有一個onclick,我試圖用這個寫每個div的這個數據。jquery每個循環寫入每個div的數據

jQuery('.circle_counter_div').each(function() { 
     var tagtext = '[circlecounter rel="' + jQuery('.circle_size').val() + '"][/circlecounter]'; 
    }) 

我克隆項目,但我只能爲他們寫的一個數據。我如何爲每個克隆項目寫入數據?

因此,與上述的例子,我想標記文本等於

[circlecounter rel="' + jQuery('.circle_size').val() + '"][/circlecounter] 
[circlecounter rel="' + jQuery('.circle_size').val() + '"][/circlecounter] 
[circlecounter rel="' + jQuery('.circle_size').val() + '"][/circlecounter] 

全碼 HTML

<div class="sc_options circle_counter_div" id="clone_this" style="display: block;"> 
    <input type="text" class="circle_size"/> 
</div> 
<div class="sc_options circle_counter_div" id="clone_this" style="display: block;"> 
    <input type="text" class="circle_size"/> 
</div> 
<div class="sc_options circle_counter_div" id="clone_this" style="display: block;"> 
    <input type="text" class="circle_size"/> 
</div> 
<input type="submit" class="sc_options circle_counter_div" id="insert" name="insert" value="<?php _e("Insert", 'themedelta'); ?>" onClick="insertcirclecountershortcode();" style="display:none"/> 

腳本

// Insert the column shortcode 
function insertcirclecountershortcode() { 

    var tagtext; 
    var start; 
    var last; 

    var start = '[circlecounters]'; 
    var last = '[/circlecounters]'; 

    jQuery('.circle_counter_div').each(function() { 
     var tagtext = '[circlecounter rel="' + jQuery('.circle_size').val() + '"][/circlecounter]'; 
    }) 

    var finish = start + tagtext + last; 

    if (window.tinyMCE) { 
     window.tinyMCE.execInstanceCommand(window.tinyMCE.activeEditor.id, 'mceInsertContent', false, finish); 
     //Peforms a clean up of the current editor HTML.t 
     //tinyMCEPopup.editor.execCommand('mceCleanup'); 
     //Repaints the editor. Sometimes the browser has graphic glitches. 
     tinyMCEPopup.editor.execCommand('mceRepaint'); 
     tinyMCEPopup.close(); 
    } 
    return; 
} 
+0

但是,一個給定的id不能有多個元素。此外,你期望你的每個循環做什麼? – Serabe

+1

使用一個類沒有ID – cgatian

+0

使用類在這種情況下沒有什麼區別...我使用類更新它。仍然不起作用。 – Bowenac

回答

1

擴展答:後一些更多的信息是提供也許你是隻是缺少循環中的索引和值屬性。很難說,因爲提供了很少的示例代碼。

$('.test').each(function(i,v) { 
    var tagtext = $(v).html(); 
    console.log(tagtext); 
}) 

http://jsfiddle.net/4xKvh/

原來的答案:

使用使用類,而不是一個ID。 Id只能在頁面上使用一次。
由於應該只有一次發生,即使標記可能在頁面上有多個具有該Id的元素,jQuery也會將結果過濾爲1。這是爲了利用內置的瀏覽器函數getElementById()。

爲了證明這個結賬jsFiddle

使用class屬性更適合你想要做什麼。

jQuery('.clone_this').each(function() { 
    var tagtext = '[something][/something]'; 
}) 

而且標記:

<div class="clone_this"></div> 

這將讓jQuery來回報你這樣元素的數組正在尋找

+0

是的,這是一個錯誤,我更新了一堂課。仍然有相同的問題,因爲使用這個類沒有什麼不同。它仍然會回到未定義的數據。 – Bowenac

0

這正是我需要的...終於得到它的工作。

tagtext = ' '; 

jQuery('#circle_counter_div .circlecounter').each(function() { 
    tagtext += '[circlecounter rel="' + jQuery('.circle_size').val() + '" datathickness="' + jQuery('.circle_thickness').val() + '" datafgcolor="' + jQuery('.circle_color').val() + '" text="' + jQuery('.circle_text').val() + '" fontawesome="' + jQuery('.font_awesome_icon').val() + '" fontsize="' + jQuery('.circle_font_size').val() + '"][/circlecounter]'; 
}); 

var start = '[circlecounters]'; 
var last = '[/circlecounters]'; 
var finish = start + tagtext + last;