Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery分配第二个子属性_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery分配第二个子属性

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>
  <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欢迎您,很高兴看到它对您有帮助。