jQuery:使用prev()定位元素

尼尔

我正在尝试添加class="required"一个label元素,该元素以其最简单的形式(输入type =“ text”)出现在表单软件的以下结构中:

<div>
    <label>X</label>
</div>
<input required type="text">

基本上,标签是包裹在div中的,因此以下代码可以很好地工作:

var a = $('*[required]').prev();
var b = a.find('label');
if (b)
    b.addClass('required');

然而,有时之间的间隙<input><label>较大,例如,当它是一个单选按钮:

 <div>
    <label>X</label>
</div>
<span>
    <div>
        <input required type="radio">
    </div>
</span>

那么,如果再往后移一点,如何定位标签呢?我尝试了链接,.prev()但无法正常工作。

安东尼·格里斯

如果正确使用标签,将会容易得多。使用for属性将其绑定到基于ID的输入(确保输入中的ID都是唯一的):

<div>
    <label for="foo">X</label>
</div>

<input id="foo" required type="text"/>

$('*[required]').each(function() {
    var l = $('label[for="' + this.id + '"]');
    if(l.length > 0) {
        l.addClass('required');
    }
    else {
        // some convoluted and easily broken DOM traversal fallback
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery:不定位元素

来自分类Dev

使用文本定位元素

来自分类Dev

使用Xpath定位元素

来自分类Dev

使用 nbsp 定位元素

来自分类Dev

在使用jQuery UI拖动之前重新定位元素

来自分类Dev

CSS:在IE中使用jquery定位元素

来自分类Dev

使用JQuery动态重新定位元素

来自分类Dev

使用 jQuery 在滚动上重新定位元素

来自分类Dev

使用 jQuery 打开模式时如何定位元素

来自分类Dev

使用SASS定位元素内的元素

来自分类Dev

我无法使用 jquery 唯一地定位定位元素

来自分类Dev

无法使用xpath定位元素

来自分类Dev

使用动态ID发出定位元素

来自分类Dev

无法使用cypress定位元素

来自分类Dev

无法使用Selenium Python定位元素

来自分类Dev

无法使用 Selenium 定位元素

来自分类Dev

使用 URL 哈希定位元素

来自分类Dev

即使可以在浏览器中选择元素,也无法使用jQuery定位元素

来自分类Dev

JavaScript定位元素

来自分类Dev

JavaScript定位元素

来自分类Dev

在不使用绝对定位的情况下定位元素

来自分类Dev

在定位元素时使用边距还是绝对定位?

来自分类Dev

使用Protractor定位元素指令中的元素

来自分类Dev

当使用jQuery为其父元素设置动画时,为什么绝对子元素定位元素会中断?

来自分类Dev

jQuery中具有空格的ID的定位元素

来自分类Dev

如何使用绝对位置来定位元素?

来自分类常见问题

使用Selenium和Python无法通过xpath定位元素

来自分类Dev

无法在Appium中使用xpath定位元素

来自分类Dev

使用text()的XPath定位元素不起作用