我有以下代码段...
jQuery("div:contains('myfield')").parent().find('#field_css_class').val('thisistheclass');
我希望它能够做到以下几点......
它有点工作,目前它改变了所有css_class实例的值,而不仅仅是包含div的那个实例的值。
我哪里错了?
答案 0 :(得分:1)
你有什么工作(如果我理解你的话),除了类选择器以点(.
)开头而不是哈希(#
- 以id选择,而不是class-name),所以试试:
jQuery("div:contains('myfield')").parent().find('.css_class').val('thisistheclass');
答案 1 :(得分:1)
我认为浮士德是对的,但你的问题还有一点。
你可以尝试类似的东西,
$("div > div:contains('myfield')").find(".css_class").val('DesiredVal');
这将选择包含'myfield'并位于div内的div中的所有.css_class对象。
我应该注意,如果对象中有css_class,那么某些输入可能没有任何用处。如果css_class是div或span,你可能想要使用它。
$("div > div:contains('myfield')").find(".css_class").html('DesiredVal');
编辑: 所以我玩你的jfiddle示例,由于某种原因,JQuery和$的行为不一样。所以如果你给你的例子需要这样做。
$("li div div:contains('myfield')").parent().parent().find("#field_css_class").val('thisistheclass');
这会找到包含myfield的div然后上升2个对象,然后查找误导性命名的ID。
我的讨论是为什么你不像class='HandleThatOnlyJQueryLooksAtAndNotActuallyAClass'
然后你可以写
$('.HandleThatOnlyJQueryLooksAtAndNotActuallyAClass').val('Stuff');
不可否认,这是一个荒谬的名字,但它不会偶然造型。