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)的缩小查找范围 展开
 我来答
hyjiacan
推荐于2017-09-05 · TA获得超过3912个赞
知道小有建树答主
回答量:894
采纳率:100%
帮助的人:1084万
展开全部

在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.
});
加一肥一猫
2014-03-14 · TA获得超过127个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:85.7万
展开全部
1、id是唯一的,页面元素中不能有两个相同的id

2、$(this)这种写法 其实里面的this 就相当于 document.getElementById("id")
$(this)等同于 $(document.getElementById(“你的id”))
$(this)[0]等同于document.getElementById(“你的id”)
你依据你的情况选择自己方法
追问
我也只知道不能存在相同的问题,问题是现在存在了,我现在是问的是怎么用类似于jquery的$(this)取元素
追答
$(document.getElementById(“你的id”))
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jokeviner
2014-03-14 · TA获得超过186个赞
知道答主
回答量:97
采纳率:0%
帮助的人:49.3万
展开全部
获取不到是因为两个id相同吧,js获取的会是id第一次出现的元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小明笑说娱乐
2014-03-14 · 超过27用户采纳过TA的回答
知道答主
回答量:107
采纳率:100%
帮助的人:38.8万
展开全部
啥,两个相同的id-这样是最基本的错误,换js一样的,把id改成class吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随性亻
2015-06-03 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:634万
展开全部
有呀,document.getElementById("id1");
这个就相当于$(this)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式