我有一个有两个类的元素,我希望得到那个没有被用作这个元素的选择器的类。 例:
<div class="something anything"></div>
$(".something").attr("class");//Should return "anything"
$(".anything").attr("class");//Should return "something"
我知道.attr("class")
返回&#34;什么东西&#34;,它只是为了例子。
我在SO上搜索了一个答案,比如this one,但我不能用索引来找到&#34;其他&#34; class,因为我需要检索的那个可能是第一个,也可能是第二个。我的元素永远不会有两个以上的类。
所有通知都表示赞赏,可以帮助我解决这个问题。感谢。
答案 0 :(得分:2)
您需要分两步完成。 1)获取class属性2)然后替换用作选择器的类。
你可以这样做
function getOtherClass(clazz) {
var classes = $('.' + clazz).attr('class');
var regex = new RegExp('\\b' + clazz + '\\b');
return classes.replace(regex, '');
}
snippet.log(getOtherClass('something'));
snippet.log(getOtherClass('anything'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<div class="something anything"></div>
答案 1 :(得分:1)
您可以按以下方式获取:
var result = $('.something').attr('class').split(' ');
for(var i =0; i < result.length; i++)
{
if(result[i] != "something")
{
alert(result[i]);
//// yu can get your value here.
}
}
答案 2 :(得分:1)
我认为这是最简单的方法(如果总有两个类):
function getClass (clsName) {
var classes = $("."+clsName).attr("class").split(" ");
return (classes[0] == clsName) ? classes[1] : classes[0];
}
var cls = "something";
console.log(getClass(cls));
cls = "anything";
console.log(getClass(cls));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="something anything"></div>
答案 3 :(得分:1)
定义一种方法以满足您的需求,例如
function GetClass(elemClass)
{
var temp= $("." + elemClass).attr("class");
temp=temp.Replace(elemClass,"").trim();
return temp; //here you will have the classes you need
}
上述逻辑适用于2个类,因为您的问题所述 但是对于许多类,你只需要将它们转换为数组并移除给定的玻璃,从这里开始就不会花费太多的开销。
答案 4 :(得分:1)
这是另一个简单的解决方案
var myclass = $(".something").attr("class").replace("something","");
myclass = $.trim(myclass); //remove empty space
alert(myclass);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="something anything"></div>