2011-03-17 57 views
2

大家早上好,提醒从克隆链接的值被克隆的短语被包裹

我想睡觉了我的问题,但我被困在语法,因为我是比较新的JavaScript和jQuery的。

所以,我的想法是克隆一个短语,如:

<p> 
<a href="#" class="myClass">[1]</a> 
</p>

这是我的代码克隆这句话:

var clone = $("p").clone();

现在我想一个复选框添加到每个短语

var clone = $("p").clone().prepend("<input type='checkbox' id='checked' checked>");

该html结构看起来像:


<p> 
<input type="checkbox" checked=" " id="checked"> 
<a href="#" class="myClass">[1]</a> 
</p> 

以下是对我来说最困难的部分: 我试图在复选框被标记时实现链接值的提醒。 该值应该没有括号,如“[”或“]”。 我想我必须使用像replace();等正则表达式。

我最终的目标是将链接的值插入到textarea中。 但我没有弄清楚如何提醒这个值。

你能帮我吗?

回答

0

的样子:

var clone = $("p").clone().prepend($('<input>', { 
    id:  'checked', 
    type: 'checkbox', 
    checked: 'checked', 
    change: function() { 
     if(this.checked) { 
      alert($(this).next('a').text().match(/^\[(\d+)\]$/)[1]); 
     } 
    } 
})).appendTo(document.body /* or somewhere else */); 

演示http://jsfiddle.net/WkceQ/

+0

这很酷。你的小提琴奏效。但我必须使用1.2.6 jQuery库。我不能使用某物。像id:'checked'。我会把id,类型和状态放到input元素中,并在改变时创建一个函数。那是对的吗? – fukliyshu 2011-03-17 10:11:36

0

尝试:

$('a.go').click(function(){ 
    var $p = $('p'); 
    $p.each(function(){ 
     var checked = ($(this).find('input').is(':checked')); 
     var result = checked ? ($(this).find('a')[0].innerHTML.replace('[', '').replace(']', '')) : $(this).find('a')[0].innerHTML; 
     alert(result) 
    }); 
    return false; 
}); 

DEMO

+0

这也有帮助。谢谢。 – fukliyshu 2011-03-17 10:17:38

+0

@fukliyshu请记住,你喜欢你的答案应该upvote – qwertymk 2011-03-17 10:27:52