我如何使用 jQuery 将变量(图像标签)附加到我当前所在的当前 div?
How do I use jQuery to append a variable (image tag) to the current div I'm currently in?
我让用户输入特定关键字,这将 return 与该关键字匹配的图像 (Instagram API)。当用户在文本区域中输入关键字并按下提交按钮时,我希望将获取的图像放置在与使用的文本区域相同的 div 内。
这是我的两个 div:
<div id="firstPic" class="pic">
<form id="form" onsubmit="return false;">
<input type="text" id="input" placeholder="FAVORTIE ANIMAL"/>
<input type="submit" onclick="instaSearch();"/>
</form>
</div>
<div id="secondPic" class="pic"></div>
<form id="form" onsubmit="return false;">
<input type="text" id="input" placeholder="FAVORITE INSECT"/>
<input type="submit" onclick="instaSearch();"/>
</form>
这是被调用的函数:
function instaSearch() {
//user input
var tagname = document.getElementById("input").value;
$.ajax({
url: 'https://api.instagram.com/v1/tags/'+tagname+'/media/recent?client_id=YOUR-CLIENT-ID&callback=YOUR-CALLBACK',
dataType: 'jsonp',
success: function(result){
for (var i = 0; i < 1; i++){
var url = result.data[i].images.thumbnail.url;
var instapic = '<img src="' + url + '"/>';
$(this).append(instapic);
}
}
});
}
在 $(this).append(instapic); 之前一切似乎都正常工作。理想情况下,我想将 instapic 附加到 THIS div.
非常感谢这里的任何帮助!!
您不能在一个页面中多次使用相同的 ID,因此您需要改为使用 类。我建议你忘记使用 onclick
因为你已经在使用 jQuery
<div id="firstPic" class="pic">
<form class="pic_form" >
<input type="text" class="search_input" placeholder="FAVORTIE ANIMAL">
<input type="submit" value="Submit">
</form>
</div>
JS
// document ready function
$(function () {
// use submit handler instead of button to allow keyboard submit
$('form.pic_form').on('submit', function (e) {
e.preventDefault();
// `this` is the form that was submitted
var tagname = $(this).find('.search_input').val();
var $container = $(this).parent();
var url = 'https://api.instagram.com/v1/tags/' + tagname + '/media/recent?client_id=YOUR-CLIENT-ID&callback=?'
// $.getJSON is shortcut method for `$.ajax`
$.getJSON(url, function (result) {
$.each(result.data, function (_, item) {
var url = item.images.thumbnail.url;
var instapic = '<img src="' + url + '">';
$container.append(instapic);
});
});
});
});
我让用户输入特定关键字,这将 return 与该关键字匹配的图像 (Instagram API)。当用户在文本区域中输入关键字并按下提交按钮时,我希望将获取的图像放置在与使用的文本区域相同的 div 内。
这是我的两个 div:
<div id="firstPic" class="pic">
<form id="form" onsubmit="return false;">
<input type="text" id="input" placeholder="FAVORTIE ANIMAL"/>
<input type="submit" onclick="instaSearch();"/>
</form>
</div>
<div id="secondPic" class="pic"></div>
<form id="form" onsubmit="return false;">
<input type="text" id="input" placeholder="FAVORITE INSECT"/>
<input type="submit" onclick="instaSearch();"/>
</form>
这是被调用的函数:
function instaSearch() {
//user input
var tagname = document.getElementById("input").value;
$.ajax({
url: 'https://api.instagram.com/v1/tags/'+tagname+'/media/recent?client_id=YOUR-CLIENT-ID&callback=YOUR-CALLBACK',
dataType: 'jsonp',
success: function(result){
for (var i = 0; i < 1; i++){
var url = result.data[i].images.thumbnail.url;
var instapic = '<img src="' + url + '"/>';
$(this).append(instapic);
}
}
});
}
在 $(this).append(instapic); 之前一切似乎都正常工作。理想情况下,我想将 instapic 附加到 THIS div.
非常感谢这里的任何帮助!!
您不能在一个页面中多次使用相同的 ID,因此您需要改为使用 类。我建议你忘记使用 onclick
因为你已经在使用 jQuery
<div id="firstPic" class="pic">
<form class="pic_form" >
<input type="text" class="search_input" placeholder="FAVORTIE ANIMAL">
<input type="submit" value="Submit">
</form>
</div>
JS
// document ready function
$(function () {
// use submit handler instead of button to allow keyboard submit
$('form.pic_form').on('submit', function (e) {
e.preventDefault();
// `this` is the form that was submitted
var tagname = $(this).find('.search_input').val();
var $container = $(this).parent();
var url = 'https://api.instagram.com/v1/tags/' + tagname + '/media/recent?client_id=YOUR-CLIENT-ID&callback=?'
// $.getJSON is shortcut method for `$.ajax`
$.getJSON(url, function (result) {
$.each(result.data, function (_, item) {
var url = item.images.thumbnail.url;
var instapic = '<img src="' + url + '">';
$container.append(instapic);
});
});
});
});