Javascript Jquery分配第二个子属性
有没有办法用变量指定嵌套的div属性?像Javascript Jquery分配第二个子属性,javascript,jquery,html,Javascript,Jquery,Html,有没有办法用变量指定嵌套的div属性?像 <div> <div> 123456 </div> </div> 123456 变成 <div> <div sectionid="123"> 123456 </div> </div> 123456 顺便说一句,上面的组件将由JavaScript创建 我试过这样的方法,但没用 var a = $('<div>
<div>
<div>
123456
</div>
</div>
123456
变成
<div>
<div sectionid="123">
123456
</div>
</div>
123456
顺便说一句,上面的组件将由JavaScript创建
我试过这样的方法,但没用
var a = $('<div><div>123456</div></div>');
a.eq(":nth-child(2)").attr("sectionid", "123");
var a=$('123456');
a、 eq(“:nth child(2)”).attr(“sectionid”,“123”);
第n个子元素(2)
是其父元素的第二个子元素。您的div不是这样,它是父div的第一个元素
.eq
在特定索引处查找元素。它不是传递选择器的地方
子选择器
将查找子元素,即div>div
将查找作为div直接子元素的div
请注意,您提供的代码,$('123456')代码>,不会创建与粘贴的DOM树类似的DOM树
更新,现在代码已编辑,a
的值是一个带有子div的div。由于a.find
将在a
中执行搜索,因此您不必使用子选择器,但可以立即找到该div:
a.find('div')
试试这个-我已经在代码中添加了注释来解释发生了什么
检查元素以查看是否添加了属性
var a=$('123456');//更改此选项以匹配所需的结构
a、 children()/。children获取直接子代(应该是嵌套的div)
.eq(0)//获取返回的数组中的第一个(如果有多个直接子代)-它是一个基于0的索引选择器
.attr('sectionid','123');
$('body')。附加(a)
试试看:
$(document).ready(function(){
$("div").eq(1).attr("sectionid","123");
})
试试这个片段
//用于DOM HTML
log(“用于DOM HTML”);
//第一路
$('#input>div').find('div').attr(“sectionid”,“123”);
log($('#input').html());
//第二条路
$('#input>div>div').attr(“sectionid”,“321”);
log($('#input').html());
//JSHTML
log(“对于JS对象”);
变量输入=$('123456');
//第一路
input.eq(0.children().attr('sectionid','456');
console.log(输入[0].outerHTML);
变量输入=$('123456');
//第二条路
$(输入[0]).children().attr('sectionid','789');
console.log(输入[0].outerHTML);
123456
只需将属性应用于子对象。无需复杂的“查找”、eq()等
var a=$('123456');
a、 children().attr('sectionid','123');
$('body')。附加(a);
为什么不先添加它?不清楚以后是否添加它
$(文档).ready(函数(){
var sectionid=“123”;
变量a=$('123456');
$(“正文”)。附加(a);
});
div[sectionid]{
颜色:红色;
}
您的a
var有两个独立的div-不是嵌套的,如果嵌套它也不会是第二个子项-它将是第一个子项。另外.eq
采用一个索引,它应该是一个整数-而不是一个选择器。您是否试图选择一个已经存在的元素并更新它?如果您将一个html字符串传递给$()
以创建新元素(不属于DOM的一部分)的方式运行。如果OP试图更新DOM中已存在的元素,则不会这样做(因为a
指的新元素不属于DOM,且与问题第一部分中描述的结构不同)@nnnnnn:是的。我仍然猜测子选择器是被要求的,但我一开始没有注意到a
的值与OP的描述不匹配。是的。关于子选择器,你显然是对的。不确定OP是否也想找到一个带有“123456”的特定子div内容,但无论如何……也许他们会回应上面的评论。我输入错误,它是var a=$('123456');
谢谢,非常好,一步一步的演练。@CodaChang欢迎您,很高兴看到它对您有帮助。