Как использовать этот код в HTML-JavaScript?Клон () - PullRequest
0 голосов
/ 06 февраля 2019

Я нашел этот код (Пример https://jsfiddle.net/uxo27cq0/)

function displaytickets(){
		var $panel = $('<div/>').addClass('col-xs-3 panel panel-default')
    $panel.append($('<div><h3 class="panel-title">Title</h3></div>').addClass('panel-heading'))
    $panel.append($('<div>Panel content</div>').addClass('panel-body'));
    $('body').append($panel);
    
  	// let's assume your ajax returns 4 tickets
    var data = {
    	'tickets' : [
      	{'description' : 'Description_1', 'status': 'Status_1', 'subject': 'Subject_1' },
      	{'description' : 'Description_2', 'status': 'Status_2', 'subject': 'Subject_2' },
      	{'description' : 'Description_3', 'status': 'Status_3', 'subject': 'Subject_3' },
      	{'description' : 'Description_4', 'status': 'Status_4', 'subject': 'Subject_4' }
      ]
    };
    
    for (i = 0; i < data.tickets.length; i++) {
    	var new_panel = $panel.clone(); // note the use of .clone()
      new_panel.find('.panel-title').text(data.tickets[i].subject);
      new_panel.find('.panel-body').text(data.tickets[i].description);
      $('body').append(new_panel);
		}
}

displaytickets();
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Я не знаю, как заставить его работать в html следующим образом:

<html>
<style>
</style>
<body>

// div here

<script type="text/javascript">

// i put the code here

</script>
</body>
</html>

очевидно, что это не сработало, поэтому, если кто-то может сказать мне, как это должно быть, это решило бы мою проблему полностью

Спасибо !!!

Ответы [ 4 ]

0 голосов
/ 06 февраля 2019

Это сработало для меня

<html>
<head>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head> 
<style>
</style>
<body>

// div here
</body>
<script type="text/javascript">

function displaytickets() {
    var $panel = $('<div/>').addClass('col-xs-3 panel panel-default')
                 $panel.append($('<div><h3 class="panel-title">Title</h3></div>').addClass('panel-heading'))
                 $panel.append($('<div>Panel content</div>').addClass('panel-body'));
$('body').append($panel);

  	// let's assume your ajax returns 4 tickets
     var data = {
	'tickets' : [
  	{'description' : 'Description_1', 'status': 'Status_1', 'subject': 'Subject_1' },
  	{'description' : 'Description_2', 'status': 'Status_2', 'subject': 'Subject_2' },
  	{'description' : 'Description_3', 'status': 'Status_3', 'subject': 'Subject_3' },
  	{'description' : 'Description_4', 'status': 'Status_4', 'subject': 'Subject_4' }
     ]
};

for (i = 0; i < data.tickets.length; i++) {
	var new_panel = $panel.clone(); // note the use of .clone()
  new_panel.find('.panel-title').text(data.tickets[i].subject);
  new_panel.find('.panel-body').text(data.tickets[i].description);
  $('body').append(new_panel);
	}
}

displaytickets();

</script>

</html>

, но я хочу извлечь html-элементы из кода, чтобы я мог их свободно редактировать и затем вызывать с идентификатором или другим способом.

<html>
<head>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head> 
<style>
 .panel {
   background-color: red;
   border-radius: none;
 }
 .heading {
   background-color: purple;
   width: 100%;

 }
 .panel-body {
   background-color: green;
 }
</style>
<body>

<div id="container" class="panel">
<div id="header" class="heading"><h3 class="panel-title">Title</h3></div>
<div id="content" class="panel-body">Panel content</div>

<script type="text/javascript">

function displaytickets() {
	var $panel = $('container')
	$panel.append($('header'));
	$panel.append($('content'));
	$('body').append(($panel));

	// let's assume your ajax returns 4 tickets
	var data = {
		'tickets': [
  	{'description' : 'Description_1', 'status': 'Status_1', 'subject': 'Subject_1' },
  	{'description' : 'Description_2', 'status': 'Status_2', 'subject': 'Subject_2' },
  	{'description' : 'Description_3', 'status': 'Status_3', 'subject': 'Subject_3' },
  	{'description' : 'Description_4', 'status': 'Status_4', 'subject': 'Subject_4' }
     ]
	};

	for (i = 0; i < data.tickets.length; i++) {
		var new_panel = $panel.clone(); // note the use of .clone()
		new_panel.find('.panel-title').text(data.tickets[i].subject);
		new_panel.find('.panel-body').text(data.tickets[i].description);
		$('body').append(new_panel);
	}
}

displaytickets();
</script>
</body>
</html>
0 голосов
/ 06 февраля 2019

@ Jess Yerena, вот что вам нужно - создайте два файла и запустите index.html: index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <link
      href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
      rel="stylesheet"
    />
  </head>
  <body>
    <div></div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="./main.js"></script>
  </body>
</html>

main.js

function displaytickets() {
  var $panel = $('<div/>').addClass('col-xs-3 panel panel-default');
  $panel.append(
    $('<div><h3 class="panel-title">Title</h3></div>').addClass('panel-heading')
  );
  $panel.append($('<div>Panel content</div>').addClass('panel-body'));
  $('body').append($panel);

  // let's assume your ajax returns 4 tickets
  var data = {
    tickets: [
      {
        description: 'Description_1',
        status: 'Status_1',
        subject: 'Subject_1'
      },
      {
        description: 'Description_2',
        status: 'Status_2',
        subject: 'Subject_2'
      },
      {
        description: 'Description_3',
        status: 'Status_3',
        subject: 'Subject_3'
      },
      { description: 'Description_4', status: 'Status_4', subject: 'Subject_4' }
    ]
  };

  for (i = 0; i < data.tickets.length; i++) {
    var new_panel = $panel.clone(); // note the use of .clone()
    new_panel.find('.panel-title').text(data.tickets[i].subject);
    new_panel.find('.panel-body').text(data.tickets[i].description);
    $('body').append(new_panel);
  }
}

displaytickets();
0 голосов
/ 06 февраля 2019

Попробуйте: введите код здесь

$(document).ready(function(){
  displaytickets();
});
function displaytickets() {
  var $panel = $('<div/>').addClass('col-xs-3 panel panel-default')
  $panel.append($('<div><h3 class="panel-title">Title</h3></div>').addClass('panel-heading'))
  $panel.append($('<div>Panel content</div>').addClass('panel-body'));
  $('#div-clone-here').append($panel);

  // let's assume your ajax returns 4 tickets
  var data = {
    'tickets': [{
        'description': 'Description_1',
        'status': 'Status_1',
        'subject': 'Subject_1'
      },
      {
        'description': 'Description_2',
        'status': 'Status_2',
        'subject': 'Subject_2'
      },
      {
        'description': 'Description_3',
        'status': 'Status_3',
        'subject': 'Subject_3'
      },
      {
        'description': 'Description_4',
        'status': 'Status_4',
        'subject': 'Subject_4'
      }
    ]
  };

  for (i = 0; i < data.tickets.length; i++) {
    var new_panel = $panel.clone(); // note the use of .clone()
    new_panel.find('.panel-title').text(data.tickets[i].subject);
    new_panel.find('.panel-body').text(data.tickets[i].description);
    $('#div-clone-here').append(new_panel);
  }
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div-clone-here">

</div>
0 голосов
/ 06 февраля 2019

<html>
<head>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head> 
<style>
</style>
<body>

// div here
</body>
<script type="text/javascript">

function displaytickets() {
    var $panel = $('<div/>').addClass('col-xs-3 panel panel-default')
                 $panel.append($('<div><h3 class="panel-title">Title</h3></div>').addClass('panel-heading'))
                 $panel.append($('<div>Panel content</div>').addClass('panel-body'));
$('body').append($panel);

  	// let's assume your ajax returns 4 tickets
     var data = {
	'tickets' : [
  	{'description' : 'Description_1', 'status': 'Status_1', 'subject': 'Subject_1' },
  	{'description' : 'Description_2', 'status': 'Status_2', 'subject': 'Subject_2' },
  	{'description' : 'Description_3', 'status': 'Status_3', 'subject': 'Subject_3' },
  	{'description' : 'Description_4', 'status': 'Status_4', 'subject': 'Subject_4' }
     ]
};

for (i = 0; i < data.tickets.length; i++) {
	var new_panel = $panel.clone(); // note the use of .clone()
  new_panel.find('.panel-title').text(data.tickets[i].subject);
  new_panel.find('.panel-body').text(data.tickets[i].description);
  $('body').append(new_panel);
	}
}

displaytickets();

</script>

</html>
...