Javascript 使用jquery.html()获取元素本身的html

Javascript 使用jquery.html()获取元素本身的html,javascript,jquery,html,Javascript,Jquery,Html,如何使用Jquery html获取元素本身的html。在下面的代码中,我希望使用JQuery获取div中的输入元素,如下所示 <div id="content">content div</div> <input type='text' id="scheduledDate" class="datetime" /> $(function() { console.log($('#scheduledDate').html('dsadasdasd'));

如何使用Jquery html获取元素本身的html。在下面的代码中,我希望使用JQuery获取div中的输入元素,如下所示

<div id="content">content div</div>
<input type='text' id="scheduledDate" class="datetime" />

$(function() {

   console.log($('#scheduledDate').html('dsadasdasd'));
    $('#content').html($('#scheduledDate').html());
});
content div
$(函数(){
console.log($('#scheduledDate').html('dsadasdad'));
$('content').html($('scheduledDate').html());
});
编辑:

我可以将$(“#scheduledDate”)作为字符串获取,它表示输入框的真实html代码,因为我的最终要求是将其传递给其他子视图(我使用的是backboneJS),并最终在一个文件中使用该html代码。
我最初的要求是将该输入字段作为字符串,以便将其传递给其他函数。我知道,如果我将它保存在DIV或其他容器中,我可以使用JQuery的.html方法获取html。我不想用别的东西来做那件事。我只是尝试使用输入框的id获取输入框本身的html内容。

这可以通过以下方式完成:

1.输入框移动到div,div内容与添加的输入一起保留

$(document).ready(function() {
var $inputBox = $("#scheduledDate");
$("#content").append($inputBox);
});
2.用输入框的副本替换div(正如nnn所指出的)

  • Div被原始输入框替换

    $(文档).ready(函数(){

  • 编辑1: 要将输入html作为div本身内的字符串获取,请使用以下命令

    $("#scheduledDate").prop('outerHTML')
    
    这将为输入对象提供html字符串 检查这把js小提琴,告诉我这是否是你需要的


    如果要将输入元素移动到div中,请尝试以下操作:

    $('#content').append($('#scheduledDate'));
    
    $('#content').append($('#scheduledDate').clone());
    
    如果要将输入元素复制到div中,请尝试以下操作:

    $('#content').append($('#scheduledDate'));
    
    $('#content').append($('#scheduledDate').clone());
    
    注意:在移动或复制元素之后,可能需要再次注册事件侦听器

    $(function() {
    
        var content = $('#content');
        var scheduledDate = $('#scheduledDate');
    
        content.empty();
        content.append(scheduledDate.clone());
    
    });
    
    正如原作者所说,他们明确希望输入的html:

    $(function() {
    
        var scheduledDate = $('#scheduledDate').clone();
        var temporaryElement = $('<div></div>');
    
        var scheduleDateAsString = temporaryElement.append(scheduledDate).html();
    
        // do what you want with the html such as log it
        console.log(scheduleDateAsString);
        // or store it back into #content
        $('#content').empty().append(scheduleDateAsString);
    
    });
    
    $(函数(){
    变量scheduledDate=$('#scheduledDate').clone();
    var temporaryElement=$('');
    var scheduledatastring=temporaryElement.append(scheduledDate.html();
    //用html做你想做的事,比如记录它
    日志(scheduleDateAsString);
    //或者将其存储回内容中
    $('#content').empty().append(scheduleDateAsString);
    });
    
    这是我将如何实现的。请参见下面的工作示例:
    一个普通或纯JavaScript方法,可以做得更好

    scheduledDate.outerHTML //HTML5
    
    或拜访

    document.getElementById("scheduledDate").outerHTML //HTML4.01 -FF.
    
    应执行/返回相同的操作,例如:

    >>  '<input id="scheduledDate" type="text" value="" calss="datetime">'
    
    >>“”
    
    如果这是你想要的


    p、 你说的“calss”是什么意思?:-)

    输入没有
    html
    。它有
    val()
    ,但是。这就是你想要的吗?另外,如果你替换
    内容的html,那么输入将被替换……标准的方法是将你想要的内容附加到一个容器中并在该容器上使用.html。我希望整个输入元素本身被复制到div中element@cale_b部分正确,输入不在内容中t div,因此当替换内容的内部html时,它不会被覆盖。“我希望整个输入元素本身被复制到div元素中”-您不需要获取其html来实现这一点,您可以使用
    .clone()
    .append()
    。(可以获取其html,但如果您的目标只是复制或将其移动到div中,则需要额外的步骤。)@cale_b-输入确实有html,也就是说,用于首先定义输入的html。或者3.追加副本。(OP没有明确说明是追加还是复制。)是的,在回答中补充说,您提供的前两种方法在您提供的JSFIDLE中都不起作用。@sheeldotme编辑了第一种方法。第二种方法很好。只需检查我提供的FIDLE即可。它很好。在第一种方法上出现了复制粘贴错误。在敲打它之前先尝试一下。谢谢,我得到了$(“#scheduledDate”)作为表示输入框的真实html代码的字符串,因为我的最终要求是将其传递给其他子视图(我使用的是backboneJS),并最终在dust文件中使用该html代码。我可以获得$(“#scheduledDate”)吗作为字符串,表示输入框的真实html代码,因为我的最终要求是将其传递给其他子视图(我使用的是backboneJS)并最终在一个dust文件中使用该html代码。@user1614862查看我的答案,以了解如何获得实际的html。是的,我已经看到了您的答案并对其进行了调试。它显示了输入字段的对象表示形式。如果我将其附加到DIV中,它将非常有效,但我最初的要求是将该输入字段作为字符串获取,以便我可以传递我知道,如果我把它放在一个DIV或其他容器中,我可以用Jquery的.html方法来获取html。我不想用其他方法来实现这个目的。我只是想用它的id来获取输入框本身的html内容。我想这就是我要找的。我可以在我的主干视图j中使用这个HTML5语法吗s文件?我的意思是“类”,我编辑了它。lol“类”:我很确定答案是因为JavaScript是web中几乎所有东西的主干。只要它允许您直接处理DOM树中存在的感兴趣的元素。因为尝试使用jQuery选择器调用元素的DOM属性,例如:
    $(“#scheduledDate”)
    将不起作用,因为我尝试的版本正在使用某种对象包装器,而dhtml属性不可用。所以请稍微调整一下。。。