【问题标题】:Remove certain text value from list of buttons从按钮列表中删除某些文本值
【发布时间】:2014-09-28 23:48:44
【问题描述】:

我有一个按钮列表。当点击一个按钮时,它会将文本“selected”附加到按钮的现有值中。

当点击一个按钮时,如果文本存在,我想从其他按钮中删除“选择”的文本。

基本上应该是这样的 - 遍历该区域中的所有按钮(它们都有一个 searchResult 类)并从每个按钮中删除“selected”值(如果存在)。

这里是每个按钮的代码:

<input type="button" class="searchResult" onclick="$(\'#usersToSend > *\').css(\'background-color\', \'#fff\');
var oldValue = this.value;
this.value=\'(selected) \' + oldValue; this.style.backgroundColor = \'#51CA3E\';
document.getElementById(\'hiddenUserFlag\').value = \''.$row['id'].'\';"
value="'.$row['username'].'">

这里是需要注意的代码位:

$(\'#usersToSend > *\').css(\'background-color\', \'#fff\');
var oldValue = this.value;
this.value=\'(selected) \' + oldValue;
this.style.backgroundColor = \'#51CA3E\';

【问题讨论】:

  • 添加一些代码或创建小提琴,以重现您的情况行为。 -1 用于创建视频,这完全不是必需的。以书面形式解释你的问题。好问题是答案的一部分。
  • 我可以看到您可能认为stackoverflow.com/questions/10215792/… 可能是重复的答案,但对于我的问题,按钮值是从数据库分配的,我不想重新加载任何内容。另外,正如我所说,最好的方法是循环遍历“usersToSend”div 中的每个按钮,然后如果存在“(selected)”,则删除值“(selected)”。
  • @user3011082 顺便说一句,你为什么要使用所有这些 `\` ?!
  • 转义 (') 因为它在通过 ajax 发送的 php 脚本中。

标签: javascript jquery html css button


【解决方案1】:

您可以使用:contains() 选择器和text() 方法,如下所示:

$("button").click(function(){
  $("button:contains('selected')").text(function(){
    return this.innerHTML.replace("selected","");
  })
  this.innerHTML+= "selected";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>button-</button>
<button>button-</button>
<button>button-</button>

更新:以上内容不适用于&lt;input&gt; 按钮。对于那些,使用.filter().val() 方法如下:

$(":input").click(function(){
  $(":input").filter(function(){
    return this.value.indexOf("selected") > 0
  }).val(function(){
    return this.value.replace("selected","");
  })
  this.value+= "selected";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="button-" />
<input type="button" value="button-" />
<input type="button" value="button-" />

【讨论】:

  • 谢谢你看起来很有希望。我会试试看! :D
  • 最后,由于其他问题,我最终只是更改了背景颜色,而不是更改文本值。非常感谢大家的有用答案和 cmets!
  • 代码 sn-p 将适用于您提出的情况。但是,对我来说,这些按钮是使用 php 脚本创建并由 ajax 发送的。我发布的所有脚本都是内联脚本。这也是为什么我不得不做 \' 来逃避 (')
  • @user3011082 我只是出于好奇而问...在回复评论时,请在相应评论下方回复,否则会混淆其他人.. :)
猜你喜欢
  • 1970-01-01
  • 2014-04-19
  • 2018-09-04
  • 2019-01-07
  • 1970-01-01
  • 2015-04-04
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多