Я пытаюсь добавить содержимое переменной в div. Переменная для добавления выбирается в соответствии с именем value
из <a>
, который щелкнут (например, <a value="shops">
).Как добавить переменную js в dom
Другими словами, если кто-то нажимает на ссылку и имеет значение shops
, эта функция должна добавлять содержимое переменной shopsGrid
в div .places
.
Пожалуйста, имейте в виду, что я очень младший разработчик. Благодаря!
var sweetsGrid = $('.places>div.sweets');
var shopsGrid = $('.places>div.shops');
// second variable shopsGrid above just to
// clarify there are lots of these variables written
// out to select from
$(".filters>.btn.labelz").click(function(){
var selection = $(this).attr("value");
$(''+selection+'Grid').appendTo('.places');
// the line above is the one that doesn't work :(
});
var grid = $('.places>div');
var sweetsGrid = $('.places>div.sweets');
var shopGrid = $('.places>div.drink');
var eatGrid = $('.places>div.eat');
$(".filters>.btn.labelz").click(function(){
var selection = $(this).attr("data-value");
if($('.label-all').hasClass('active')){
$('.label-all').removeClass('active').addClass('inactive');
$('.filters>.btn.labelz').removeClass('active').addClass('inactive');
$(this).addClass('active').removeClass('inactive');
$('.places>div:not(.'+selection+')').detach();
} else {
if($(this).hasClass('active')){
$(this).removeClass('active').addClass('inactive');
$('.places>div.'+selection+'').detach();
} else {
$(this).addClass('active').removeClass('inactive');
// THIS IS THE ISSUE!
$(selection+'Grid').appendTo('.places');
}
}
return false;
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="GUIDE">
<meta name="author" content="">
<title>NYC GUIDE</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/custom.css" rel="stylesheet">
</head>
<body>
<div class="row" id="navbar">
<div class="col-xs-12 col-sm-4">
<div class="btn-group btn-group-justified filters">
<a href="#" class="labelz label-eat btn active" data-value="Eat">Eat</a>
<a href="#" class="labelz label-chill btn active" data-value="chill">Chill</a>
<a href="#" class="labelz label-drink btn active" data-value="drink">Drink</a>
<a href="#" class="labelz label-fashion btn active" data-value="fashion">Fashion</a>
</div>
</div>
</div>
<div class="container" id="places-wrapper">
<div class="row places all-places">
<div class="col-sm-4 place drink eat">
<h5 class="tags"><span class="label label-drink">Drink</span><span class="label label-eat">Eat</span></h5>
<h3>Place 1</h3>
</div>
<div class="col-sm-4 place fashion">
<h5 class="tags"><span class="label label-fashion">Fashion</span></h5>
<h3>Place 2</h3>
</div>
<div class="col-sm-4 place fashion">
<h5 class="tags"><span class="label label-chilll">chill</span></h5>
<h3>Place 3</h3>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/app.js"></script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA6eMmlCy8MX-p6Imo0scPRWj6D0MCl1y0&&callback=initMap">
</script>
</body>
</html>
Это должно работать, * при условии, что элементы, которые вы подключаете, существуют по вашему призыву «щелкнуть». (Выполнение этого слишком рано - распространенная ошибка. Например, если ваш 'script' находится в' head' - анти-шаблон, который вы видите слишком часто, то элементы не будут существовать. Поместите 'script' перед закрытием '