如何隐藏基于值的元素包含?

时间:2012-08-03 11:49:19

标签: jquery input hide

我试图隐藏按钮,如果它包含值'foo'。

以下代码无效,我无法理解原因:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Example</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
  $(document).ready(function () {
     $("button:contains('foo')").parent('div').hide();
  });
</script>

</head>
<body>

  <div class="prod_buy">
    <input name="Add to Cart" type="submit" class="rb green txtbutton" value="foo">
  </div>

</body>
</html>

2 个答案:

答案 0 :(得分:5)

<script type="text/javascript">
$(document).ready(function () {
   $("input[value=foo]").closest('div').hide();
});
</script>

答案 1 :(得分:1)

看起来你没有匹配按钮,这是一个提交输入。

使用类似的东西:

$("input[type=submit][value*=foo]").parent('div').hide();

value*表示它会匹配'contains',例如它将匹配一个名为'foobar'的按钮。见这里:http://api.jquery.com/attribute-contains-selector/

工作示例:http://jsfiddle.net/e4ar9/