如何在没有id的情况下在另一个元素中查找元素

时间:2015-05-29 14:15:06

标签: javascript jquery

当选择下拉列表的值发生变化时,我试图更改某些输入元素的值。

当选择下拉列表发生变化时,我想更改一些带有td的td的隐藏文本框和普通文本框。

type="hidden"标记内,有多个元素type="hidden"和一个输入类型=文本。我想更改元素的值id_lkid_lkoldtd结尾,然后是type="text"span的唯一元素id 1}}并且位于td标记

我在td中没有type="text"元素,因为它们是自动生成的,我也不能为这些元素分配类。我只能将课程分配给<select class="selectClass"> <option>Option 1</option> <option>Option 2</option> </select> <table> <tr> <td class="owner"> <select> <option>1</option> <option>2</option> </select> <input type="hidden" id = "someid_lkid" value="00590000002BIF7"> <input type="hidden" id = "someid_lkold" value="Some Text"> <!-- there are some more hidden fields --> <span class="lookupInput"> <input type="text" id = "someid" value="Some Text"> </span> </td> </tr> </table>

我可以更改隐藏文字的值,但我不确定如何更改$(document).ready(function () { $('.selectClass').change(function() { $('.owner').each(function(i) { $(this).find("input[type='hidden']").each(function(){ if($(this).attr('id').indexOf("lkid") > -1){ $(this).val('new id'); alert($(this).val()); } if($(this).attr('id').indexOf("lkold") > -1){ $(this).val('new text'); alert($(this).val()); } }) }) }) }) 字段。任何指针都会有所帮助。

Jsfiddle:https://jsfiddle.net/4honph7n/3/

这个js可能不是最好/最有效的代码,用jquery做了一些小步骤

HTML

{{1}}

的js

{{1}}

6 个答案:

答案 0 :(得分:2)

您可以将.find()与班级选择器以及子选择器和Attribute Ends with selector

一起使用
var textInput = $(this).find('.lookupInput input');
alert(textInput.val());

//Similarly you can use
var lkid = $(this).find("input[id$='_lkid']");
var lkold = $(this).find("input[id$='_lkold']");

DEMO

答案 1 :(得分:2)

您可以使用attribute ends with selector

 =COUNTIFS(B:B,"Yes",E:E,"Yes")

答案 2 :(得分:2)

如果要为所有输入分配相同的文本/值,则

$(document).ready(function () {
    $('.selectClass').change(function () {
        $('.owner input[id$="lkid"]').val('new id');
        $('.owner input[id$="lkold"]').val('new text');

        $('.owner input:text').val('new val');

    })
})

演示:Fiddle

答案 3 :(得分:2)

您可以使用以下选择器。

选择ID为'lkid'的隐藏输入:
$('[id*=lkold]')

选择id为'lkold'的隐藏输入:
$('td.owner>span.lookupInput input[type=text]')

选择文字输入:
{{1}}

答案 4 :(得分:1)

试试这个:DEMO

$(document).ready(function () {
    $('.selectClass').change(function() {
        $(".owner input[id$='_lkid']").val('new id');
        $(".owner input[id$='_lkold']").val('new text');
        $(".owner span input[type=text]").val('new value');
    })
})

答案 5 :(得分:0)

你只需要使用一些选择器,

  1. 获取所有输入 - &gt; $( “输入”)
  2. 获取具有type属性的所有输入 - &gt; $( “输入[类型]”)
  3. 获取所有隐藏的输入 - &gt; $( “输入[类型=隐藏]”)
  4. 使用'den'获取所有类型结尾的输入 - >&gt; $( “输入[类型$ = DEN]”)
  5. 要获取所有类型的输入以'hid'开头 - &gt; $( “输入[类型^ = HID]”)
  6. 要获取所有类型包含'idd'的输入 - &gt; $( “输入[类型* = IDD]”)
  7. 你可以从这里获得更多这样的选择器 - &gt; http://www.w3schools.com/css/css_attribute_selectors.asp

    基本上,jQuery选择器是CSS选择器......