我有一个按钮列表。单击一个时,它会将文本“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\';
答案 0 :(得分:1)
您可以使用:contains()
选择器和text()
方法,如下所示:
$("button").click(function(){
$("button:contains('selected')").text(function(){
return this.innerHTML.replace("selected","");
})
this.innerHTML+= "selected";
});
&#13;
<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>
&#13;
更新:上述内容不适用于<input>
按钮。对于那些,请使用.filter()
和.val()
方法:
$(":input").click(function(){
$(":input").filter(function(){
return this.value.indexOf("selected") > 0
}).val(function(){
return this.value.replace("selected","");
})
this.value+= "selected";
});
&#13;
<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-" />
&#13;