jQuery div:包含包含div的select

时间:2014-02-04 22:40:55

标签: jquery

我有以下代码段...

jQuery("div:contains('myfield')").parent().find('#field_css_class').val('thisistheclass');

我希望它能够做到以下几点......

  • 搜索所有div以查找包含“myfield”一词
  • 的div
  • 选择包含DIV
  • 在此包含div中搜索#css_class
  • 插入值

它有点工作,目前它改变了所有css_class实例的值,而不仅仅是包含div的那个实例的值。

我哪里错了?

2 个答案:

答案 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');

不可否认,这是一个荒谬的名字,但它不会偶然造型。