如何根据jQuery的标题隐藏html元素?

时间:2010-07-12 03:12:25

标签: javascript jquery

我需要隐藏一些元素,具体取决于它们的标题值(它是一个SharePoint站点,sharePoint为所有元素名称和ID添加了一个guid),我看到使用jQuery可以很容易地做到这一点,但我不这样做让它发挥作用。

我看到Get element by title jQuery但它对我不起作用。我的代码的一部分是:

<script src="/System%20Configuration%20Files/jquery-1.3.2.min.js";  type="text/javascript";></script>
<script src="/System%20Configuration%20Files/jquery.SPServices-0.4.1.min.js";  type="text/javascript";></script>


<script type="text/javascript">  

$("document").ready(function ($) { 

//turn off all hidden fields for different record types, then conditionally turn fields off and on based upon the item level selected
//note that field level GUIDs can change when list columns are added or amended in the list

   var control;


//Progress Status
   control = $("select[title='Progress Status']");
   control.parentNode.parentNode.parentNode.style.display="none";


//Status Change Date
   control = $("select[title='Status Change Date']");

   control.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.display="none";



//Set for Milestone Action which is the default Item Level


//Strategic Objective
   control = $("select[title='Strategic Objective']");
   control.parentNode.parentNode.parentNode.style.display="";


//Strategic Priority
   control = $("select[title='Strategic Priority']");
   control.parentNode.parentNode.parentNode.parentNode.style.display="";


//Performance Measure
   control = $("select[title='Performance Measure']");
   control.parentNode.parentNode.parentNode.parentNode.style.display="none";


//Start Date   
   control = $("select[title='Start Date']");
   control.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.display="";


//Target Date
   control = $("select[title='Target Date']");
   control.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.display="";


//Priority
   control = $("select[title='Priority']");
   control.parentNode.parentNode.parentNode.style.display="";


//Percentage Complete
   control = $("select[title='% Complete']");
   control.parentNode.parentNode.parentNode.style.display="";


//Baseline
   control = $("select[title='Baseline']");
   control.parentNode.parentNode.parentNode.style.display="none";



//Current
   control = $("select[title='Current']");
   control.parentNode.parentNode.parentNode.style.display="none";



//Target
   control = $("select[title='Target']");
   control.parentNode.parentNode.parentNode.style.display="none";


      });

</script>

3 个答案:

答案 0 :(得分:2)

jQuery对象没有parentNode属性。这是为了使用DOM元素。 jQuery可以使整个任务变得更加容易:

您可以使用.get()来获取实际的DOM节点:

control.get(0).parentNode.parentNode.parentNode.style.display="none";

然而,对于jQuery来说这是一种倒退,更有意义的是使用.parent().css()

control.parent().parent().parent().css('display', 'none');

更有意义的是,只需寻找符合您实际需要的.closest()父母。 (I.E a <tr>),也许只使用.hide()

control.closest('tr').hide();

就选择器而言,$("select[title='Something']")会查找<select title='something'>,这可能不是您想要的......

答案 1 :(得分:0)

你可以使用:

control.hide();

答案 2 :(得分:0)

您的代码可能没有运行,因为名为“document”的元素不存在。

变化: $("document").ready(function ($) {

为:

$(document).ready(function(){