简体   繁体   English

Console.log-getElementsByClassName

[英]Console.log - getElementsByClassName

I'm trying to learn HTML5 "DnD". 我正在尝试学习HTML5“ DnD”。

I have a table wich is created with HTML from PHP. 我有一个用PHP的HTML创建的表。

echo "<li class='elements' id='".$row['id']."' draggable='true'>".$row['element_nr']."</li>";

Now i'd like to fetch this text with javascript. 现在,我想使用javascript提取此文本。

element = document.getElementsByClassName('elements');

Then just for fun i'd like to console that variable to se what's in it. 然后只是为了好玩,我想控制台该变量,以了解其中的内容。 So i use: 所以我用:

var element = document.getElementsByClassName('elements');
console.log(element);

Now when i check my console, i see nothing. 现在,当我检查控制台时,什么也看不到。 When i drag the text i see nothing. 当我拖动文本时,我什么也看不到。 I have also tryed "prompt(element);" 我也尝试过“提示(元素)”;

How can i see what´s in "var element"? 如何查看“ var element”中的内容?
This is my code.(Not really working yet) 这是我的代码(尚未真正起作用)

JS JS

$(document).ready(function(){
function doFirst(){
    element = document.getElementsByClassName('elements');
    element.addEventListener('dragstart', startDrag, false);
    drop_element = document.getElementById('drop_element');
    drop_element.addEventListener('dragenter', function(e){e.preventDefault();}, false);
    drop_element.addEventListener('dragover', function(e){e.preventDefault();}, false);
    drop_element.addEventListener('drop', dropped, false);
}
function startDrag(e){
    var element = document.getElementsByClassName('elements');
    console.log(element);
    e.dataTransfer.setData('Text', element);
}
function dropped(e){
    e.preventDefault();
    drop_element.innerHTML = e.dataTranfer.getData('Text');
}

window.addEventListener('Load', doFirst, false);
});

HTML 的HTML

<section id="drag_element">
  <ul>
    <?php echo "<li class='elements' id='".$row['id']."' draggable='true'>".$row['element_nr']."</li>";?>
  </ul>

<section id="drop_element">
  drop here
</section>

The issue here is that doFirst() is never invoked because the vent listener you attached is incorrect. 这里的问题是因为您连接的通风口侦听器不正确,所以永远不会调用doFirst()

Additionally, element.addEventListener isn't going to work because it's actually a live array of elements. 另外, element.addEventListener不能正常工作,因为它实际上是一个实时的元素数组。

Try this 尝试这个

jQuery(function(){

  function doFirst(){
    jQuery('.elements').on('dragstart', startDrag);
    jQuery('#drop_element').on('dragenter dragover', function(e) { e.preventDefault(); });
    jQuery('#drop_element').on('drop', dropped);
}

function startDrag(e){
    var elements = document.getElementsByClassName('elements');
    console.log(elements);
    e.dataTransfer.setData('Text', element);
}
function dropped(e){
    e.preventDefault();
    jQuery('#drop_element').html(e.dataTranfer.getData('Text'));
}

jQuery('window').on('load', doFirst);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM