js中有没有类似jquery的$(this)方法?
是这样的,页面有两个相同的ID,结果如<tr><inputid="#div"></tr><tr><inputid="#div"></tr>我要分别取出input中的值,$...
是这样的,页面有两个相同的ID,结果如<tr><input id="#div"></tr><tr><input id="#div"></tr>我要分别取出input中的值,$('tr').each(function(){$(this).find('#div')});这样每次循环的值都能正确对应上,我现在要将查找元素的方式换成js的(因为直接用jquery,可能是ID中含有特殊字符,获取不到,但用js能获取到),所以想用js中类似于$(this)的缩小查找范围
展开
展开全部
在javascript中,DOM节点有这两个方法:
getElementsByTagName
getElementsByClassName
如果可以把里面的id='div'改成class='div',那么就可以这样写:
$('tr').each(function(){
var subs = this.children;
var target = this.getElementsByClassName('div')[0];
// target is the element you want.
});
不过这里你用不上, 用你的代码举例可以尝试这样用:
$('tr').each(function(){
var subs = this.children;
var target;
for(var i=0;i<subs.length;i++) {
if(subs[i].id === 'div') {
target = subs[i];
break
}
}
// target is the element you want.
});
展开全部
1、id是唯一的,页面元素中不能有两个相同的id
2、$(this)这种写法 其实里面的this 就相当于 document.getElementById("id")
$(this)等同于 $(document.getElementById(“你的id”))
$(this)[0]等同于document.getElementById(“你的id”)
你依据你的情况选择自己方法
2、$(this)这种写法 其实里面的this 就相当于 document.getElementById("id")
$(this)等同于 $(document.getElementById(“你的id”))
$(this)[0]等同于document.getElementById(“你的id”)
你依据你的情况选择自己方法
追问
我也只知道不能存在相同的问题,问题是现在存在了,我现在是问的是怎么用类似于jquery的$(this)取元素
追答
$(document.getElementById(“你的id”))
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获取不到是因为两个id相同吧,js获取的会是id第一次出现的元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
啥,两个相同的id-这样是最基本的错误,换js一样的,把id改成class吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有呀,document.getElementById("id1");
这个就相当于$(this)
这个就相当于$(this)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询