2014-10-29 40 views
0

$EACH DEMOjQuery.each()類的例子追加股利文本李

好歹的IAM獲得的「DIV級」的文本:在控制檯和印刷, 和IAM試圖追加在「相同的文字LI>按鈕」,這是不發生,不知道在哪裏IAM走錯了,

HTML:

<div class="productDescription">Red</div> 
<div class="productDescription">Orange</div> 
<div class="productDescription">Green</div> 


<li><button>1</button></li> 
<li><button>2</button></li> 
<li><button>3</button></li> 

JS:

//step - 1 
$.each($('.productDescription'), function() { 
    var classTxt = $(this).text(); 
    console.log(classTxt); 
}); 
//outputs: Red Orange Green 

//step - 2 now im trying to append the text to li 
var liBtn = $(this).find('li').next('button'); 
    console.log("Text of Button - "+ classTxt); 
    console.log(liBtn) 
    for (var i = liBtn.length; i >= 0; i++) { 
     liBtn[i] 
    }; 

感謝您的幫助,謝謝

+1

classTxt是局部變量$。每個功能。這是不可用的。 – 2014-10-29 01:43:03

回答

2

有在你的代碼的幾個錯誤。 classTxtundefined之外的each處理程序的上下文和第二個this是指window對象,而不是.productDescription元素。

我建議使用.append()方法的回調函數:

// cache the collection for better performance 
var $p = $('.productDescription'); 

$('li button').append(function (index) { 
    return $p.eq(index).text(); 
}); 

http://jsfiddle.net/46yo7etz/

您也可以使用.text()方法:

$('li button').text(function(index, currentTextContent) { 
    // using indices for selecting 
    // the corresponding `.productDescription` element 
    return currentTextContent + $p.eq(index).text(); 
}); 

請注意,您的提琴的標記無效。 li元素應該是ul/ol元素的子元素。

+0

真棒謝謝 – stanze 2014-10-29 01:52:30

+0

@stanze歡迎您! – undefined 2014-10-29 01:58:20

1

$('li > button').text(function() { 
 
    return $('.productDescription').eq($('li > button').index(this)).text(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="productDescription">Red</div> 
 
<div class="productDescription">Orange</div> 
 
<div class="productDescription">Green</div> 
 

 

 
<li><button>1</button></li> 
 
<li><button>2</button></li> 
 
<li><button>3</button></li>

0
$("button").each(function(i){ 
    $(this).text($(".productDescription").eq(i).text()); 
}) 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="productDescription">Red</div> 
<div class="productDescription">Orange</div> 
<div class="productDescription">Green</div> 

<ul> 
    <li><button>1</button></li> 
    <li><button>2</button></li> 
    <li><button>3</button></li> 
</ul> 

http://jsfiddle.net/simply_simpy/uqmpvb7e/