【问题标题】:How to check if any string in the page has a character and do something if so?如何检查页面中的任何字符串是否有字符,如果有,则执行某些操作?
【发布时间】:2015-03-25 03:19:42
【问题描述】:

我需要更改文本,因为它输出为y2015,而它应该只是2015,这将在一组select option 中,并且它们可以根据y2012 y2013 y2014 是动态的

基本上就是这样

<select>
  <option>y2013</option>
  <option>y2014</option>
  <option>y2015</option>
</select>

应该变成

<select>
  <option>2013</option>
  <option>2014</option>
  <option>2015</option>
</select>

我发现了一个名为 How to see if string contains substring 的问题,这可能会有所帮助,但我不知道如何在我的情况下使用它。

它基本上说使用if (str.indexOf("Yes") &gt;= 0) 可以工作,因为我可以说类似if (str.indexOf("Y2") &gt;= 0) 然后使用subtring(1);

我的网址需要 y+number,我正在更改历史记录的地址,如果它只使用数字,它就会混淆。我发现通过在数字前添加一个字母可以解决地址问题,因此我不能仅按照2015 等输出数字。

另外请注意,这不是我唯一的下拉菜单,我不能只为这个提供一个特定的类,所以我不能直接定位它,否则会容易得多。

【问题讨论】:

  • 为什么不修复输出 y 的任何内容,而不是稍后尝试替换它?
  • 因为我的网址需要 y+number,所以我正在更改历史记录的地址,如果它使用数字,它就会混淆。我发现通过在可以解决问题的数字前添加一个字母。 - 我将在我的问题中添加这些信息
  • 那么为什么不添加y+number 作为可以与面向人类的文本值分开读取的数据属性呢? IMO 使用 javascript 破解基本 UI 并不是一个好主意。
  • 我完全同意黑客攻击,但这只是一个复杂的问题,无法添加数据属性,因为整个地址栏是使用大线构建的,并且要改变它们的工作方式,比如使用数据属性对于地址历史值,将成为一场噩梦。也是 php 和 jQuery 的完整混合,所以不是那么容易。一个简单的顽皮黑客没有错;)

标签: jquery


【解决方案1】:

只需在option 元素的text() 上调用substr(1),检查'y' 是否是第一个字符:

$('option').text(function() {
  var text = $(this).text();
  return text.indexOf('y') == 0 ? text.substring(1) : text;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select>
  <option>y2013</option>
  <option>y2014</option>
  <option>y2015</option>
</select>

<select>
  <option>2013</option>
  <option>2014</option>
  <option>2015</option>
</select>

【讨论】:

  • 好的是的,这很容易,但我有一组不同的选项在他的页面中选择,我没有课。我正在尝试通过查找文本来检查它并执行子字符串..
猜你喜欢
  • 1970-01-01
  • 2018-04-05
  • 2011-03-31
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
相关资源
最近更新 更多