使用JS检查此场景中是否存在html标记

时间:2017-04-20 14:26:13

标签: javascript html

HTML部分如下所示:

<select class="ue-select-box box-model" name="metric-name">                             
  <option value="1" selected>Logins (including from CRM)</option>
  <option value="2">Listened to a Call (including from CRM)</option>
  <option value="15">Set up a New Report/Edited a Report</option>
  <cfif session.accountId NEQ 5>
     <option value="13">Staff Activity - Deactivate</option>
  </cfif>                                  
</select>
  1. 第一个问题是我可以用什么来检查这个选项是否存在?我知道有一个方法(myfile.getElementsByTagName(&#34;&#34;))但在我的情况下,我有很多标签,其标签名称为&#34;选项&#34;。
  2. 如果有方法可以检查该选项是否存在,是否可以使用此方案,因为我的选项在页面上,即使仅当会话中的accountId不等于5时显示
  3. 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

1。第一个问题是我可以用什么来检查这个选项是否存在?我知道有一个方法(myfile.getElementsByTagName(“”)),但在我的情况下,我有很多标签,其标签名称为“选项”。

您可以使用document.querySelector查找任何有效CSS选择器的第一个匹配元素。如果找到则返回元素实例,如果未找到则返回null。例如,根据您对HTML的显示,您可以这样做:

if (document.querySelector('select[name="metric-name"] option[value="13"]')) {
    // Yes, it's there
} else {
    // No, it's not
}
  

2。如果有一种方法可以检查该选项是否存在,那么它是否会在这种情况下工作,因为我的选项在页面上,即使只有当sessionId来自session时不显示

根据cfif我可以找到的内容,如果条件为真,option 将不会在浏览器中的呈现页面上。所以上面会有效。

没有option的示例:

if (document.querySelector('select[name="metric-name"] option[value="13"]')) {
    console.log("Yes, it's there");
} else {
    console.log("No, it's not there");
}
<select class="ue-select-box box-model" name="metric-name">                             
  <option value="1" selected>Logins (including from CRM)</option>
  <option value="2">Listened to a Call (including from CRM)</option>
  <option value="15">Set up a New Report/Edited a Report</option>
</select>

示例 option

if (document.querySelector('select[name="metric-name"] option[value="13"]')) {
    console.log("Yes, it's there");
} else {
    console.log("No, it's not there");
}
<select class="ue-select-box box-model" name="metric-name">                             
  <option value="1" selected>Logins (including from CRM)</option>
  <option value="2">Listened to a Call (including from CRM)</option>
  <option value="15">Set up a New Report/Edited a Report</option>
  <option value="13">Staff Activity - Deactivate</option>
</select>