2014-01-28 48 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;