2016-11-07 105 views
0

IM通過一個迭代循環創建按鈕的動態。我相當新,所以我不知道我會出錯。這是迄今爲止我所擁有的。有什麼建議?for循環來創建按鈕的jquery或javascript具有麻煩

<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Document</title> 
<script src='http://code.jquery.com/jquery-2.1.3.min.js'></script> 
<script type="text/javascript"></script> 
<script src="giphy.js"></script> 
</head> 
<body> 
    <div id="buttonDiv"></div> 
    <div id="gifsAppearHere"></div> 
    </body> 
    </html> 


var topics = ['bikram', 'yoga', 'vegan', 'vegetarian','nutrition', 'exercise', 'pilates','calisthenics', 'ashtanga', 'vinyasa', 'utkatasana'] 
for (var i = 0; i < topics.length; i++) { 
    var buttons = $('<button>'+ topics.text + '</button>') 
    buttons.append('topics'); 
} 
+0

你能不能也發佈你的html? – Erik

+0

剛剛創建按鈕....現在你需要的元素添加到任何DOM元素... –

+0

,如果你發佈你的HTML過這將是非常有益的。 – Tinsten

回答

1

再看看文檔。你已經使用append,但你想appendTo(容易犯的錯誤)。

append附加您作爲參數傳遞給你打電話是對的事情的東西。

appendTo追加你怎麼稱呼它到你作爲參數傳遞的東西的東西。

還要注意的是,選擇"topics"尋找一個元素與標籤名topics,例如<topics>...</topics>。您可能打算使用類別選擇器(".topics")或ID選擇器("#topics")。

您也曾使用過topics.text,我認爲您的意思是topics[i](在簡化問題代碼時可能是錯誤的)。

例子:

使用

var topics = ['bikram', 'yoga', 'vegan', 'vegetarian', 'nutrition', 'exercise', 'pilates','calisthenics', 'ashtanga', 'vinyasa', 'utkatasana'] 
 
for (var i = 0; i < topics.length; i++) { 
 
    var buttons = $('<button>'+ topics[i] + '</button>') 
 
    buttons.appendTo('#topics'); 
 
}
<div id="topics"></div><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

內嵌代碼

var pages = ['bikram', 'yoga', 'vegan', 'vegetarian', 'nutrition', 'exercise', 'pilates','calisthenics', 'ashtanga', 'vinyasa', 'utkatasana']; 
 
var pageButtons = $('#pageButtons'); 
 
for (var i = 0; i < pages.length; i++) { 
 
    pageButtons.append('<input type="button" id="button' + i + '" value="' + pages[i] + '"/>'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="pageButtons"> 
 

 
</div>

0

我認爲你是在正確的軌道上,你只要有妙招樂事情解決

var buttons = $('div.buttons') // some div for your buttons 
var topics = ['bikram', 'yoga', 'vegan', 'vegetarian', 'nutrition', 'exercise', 'pilates','calisthenics', 'ashtanga', 'vinyasa', 'utkatasana'] 
for (var i = 0; i < topics.length; i++) { 
    var buttonsb = $('<button>'+ topics.text[0] + '</button>') 
    buttons.append('topics'b); 
}

我可能會做這樣的壽

for (let text of topics) 
    $('<button></button').text(text).appendTo('div.buttons') 
0

我不能完全肯定你正在嘗試做的,但我這是我怎麼會寫代碼。這將在它們身上附加11個帶有名稱的按鈕。

我希望這有助於!

var topics = ['bikram', 'yoga', 'vegan', 'vegetarian', 'nutrition','exercise', 'pilates','calisthenics', 'ashtanga', 'vinyasa', 'utkatasana']; 
for (var i = 0; i < topics.length; i++) { 
    var button = $('<button>'+ topics[i] + '</button>') 
    $('.div-with-btns').append(button); /*div that holds your btns*/ 
}