2011-03-17 56 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