javascript
  • jquery
  • 2016-11-30 156 views 0 likes 
    0

    我在页面上使用JS动态生成输入标签。 它们使用$("#input1").val(value)初始化。我怎样才能找到基于文本的特定输入元素?通过文本查找元素

    $("input[name='DeviceIP']").each(function(index,elem){$(elem).val(value)}); 
    

    我现在使用的解决方案是选择所有我想要检查,然后使用查找输入:

    的值如下被初始化。

    $("[name='DeviceIP']").filter(function(index, elem) { 
        var res = false; 
        var _this = this; 
        $("[name='DeviceIP']").each(function(index2, elem2) { 
         if(elem2 !== _this) { 
          if(_this.value === elem2.value) { 
           errMessage = "error text"; 
           res = true; 
          } 
         } 
        }); 
        return res; 
    } 
    

    我看了看这个问题here,但“:包含”(?也许是因为没有值的属性)并没有出于某种原因找到他们

    +2

    :含有着眼于元素中的文本不能在价值属性。目前的方法有什么问题吗? –

    +2

    您在'input1'之前缺少'.'或'#'。 –

    +0

    @MihaiVilcu它只是不起作用http://jsbin.com/ketejax/edit?html,js,console,output –

    回答

    1

    "$("input[name='DeviceIP'][value='your_value_here']")

    element.value是也是一个属性,所以你可以在你的查询中定义它;)

    但是,如果你有很多元素,你不应该经常执行这样的查询。

    我也建议您创建地图,值为键,节点为值。

    +0

    就像我说的在我的问题,我正在初始化val()值不添加属性到DOM。因此我不能使用这种方法。我添加了一个更详细的例子,使其更清晰。这里是一个更新的小提琴:https://jsfiddle.net/kef3073a/2/ –

    +0

    @RandallFlagg是的你可以;) 问题是HTML中定义的属性是初始值(在这种情况下)。 当您使用JS修改该属性时,它不会更改HTML中定义的内容,但它实际上会更改“可见值”(您可以用眼睛看到的内容)。 所以基本上: VAR输入= document.querySelector( '[名称= “DeviceIP”]') 变量$输入= $(输入) input.value = 'QWE' $ input.val()// - > qwe – grzesiekgs

    +0

    如果你会尝试修改jquery的值属性如: $ input.attr('value','new value') 比它不会工作! Attibute会在HTML中发生变化 - 但您在输入值中看不到任何更改。 – grzesiekgs

    0

    假设你有一个像

    <input type="text" value="5" name="DeviceIP"> 
    <input type="text" value="8" name="DeviceIP"> 
    
    要与特定值的元素

    的输入字段。所以你可以这样做,

    alert($("input[name='DeviceIP'][value='5']").val()); 
    

    这是fiddle
    如果你的价值是动态的,比方说你的搜索值8.so你可以在某种程度上做到这一点,

    var val = 8; 
    alert($("input[name='DeviceIP'][value='"+val+"']").val()); 
    
    +0

    这与grzesiekgs – synthet1c

    +0

    的答案不一样,在我的最后一部分中我也给出了它的动态值。此外,我还提供了一个小提琴来看现场的例子。 –

    +0

    @AururRahmanMunna就像我在我的问题中所说的,我正在使用val()初始化值,它不会将属性添加到DOM。因此我不能使用这种方法。我添加了一个更详细的例子,使其更清晰。这是一个更新的小提琴:https://jsfiddle.net/kef3073a/2/ –

    相关问题