Javascript 使用jquery.html()获取元素本身的html
如何使用Jquery html获取元素本身的html。在下面的代码中,我希望使用JQuery获取div中的输入元素,如下所示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'));
<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所指出的)
$("#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属性不可用。所以请稍微调整一下。。。