如何使用javascript更改id的类名和id名称?

时间:2018-04-19 12:49:04

标签: javascript

点击CLICK HERE时。 id="one"更改为id="two"没关系。但是class="one"没有更改为class="two",我该怎么办?

.one{
    background: red;
}

.two{
    background: yellow;
}
<div onclick="test_fn()">
    CLICK HERE
</div>
<script>
    function test_fn(){
        document.getElementById('one').id = 'two';
        document.getElementById('one').classname = 'two';
    }
</script>
<br>
<div id="one" class="one">
    test
</div>

7 个答案:

答案 0 :(得分:5)

首先,您需要使用属性className,而不是classname

然后,您刚刚将id元素的onetwo更改为id,因此您需要选择two function test_fn() { document.getElementById('one').id = 'two'; document.getElementById('two').className = 'two'; }上的元素你的下一行:

&#13;
&#13;
.one {
  background: red;
}

.two {
  background: yellow;
}
&#13;
<div onclick="test_fn()">CLICK HERE</div>

<div id="one" class="one">test</div>
&#13;
function test_fn() {
  let elem = document.getElementById('one');
  elem.id = 'two';
  elem.className = 'two';
}
&#13;
&#13;
&#13;

编辑:您还可以在编辑其属性之前存储该元素:

element = driver.find_element_by_xpath("//div[@class='blockUI blockOverlay']")

driver.execute_script("arguments[0].style.visibility='hidden'", element)

答案 1 :(得分:1)

试试这个,它的工作!

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(note: Note): Long

Log.v("tag", "Id: " + insert(note))
document.getElementById('two').className = 'two'; 
/*Spelling correction "classname" to className & getElementById('one') to getElementById('two') */

答案 2 :(得分:0)

您已在通话中更改了选择器的ID。首先将元素分配给变量:

var foundEl = document.getElementById('one');
foundEl.id = 'two';
foundEl.className = 'two';

答案 3 :(得分:0)

您使用classname代替className

这是一个有效的例子......

<div onclick="test_fn()">
    CLICK HERE
</div>
<script>
    function test_fn(){
        document.getElementById('one').id = 'two';
        document.getElementById('one').className = 'two';
    }
</script>
<br>
<div id="one" class="one">
    test
</div>

答案 4 :(得分:0)

要将课程one更改为two,您可以尝试在test_fn功能上添加此内容:

document.getElementById('one').removeClass('one').addClass('two');

答案 5 :(得分:0)

它是因为你在将它改为2之后通过id查询。存储您想要在变量中首先更改的元素,然后执行更改:

let el = document.querySelector('one');
el.id = 'two';
el.className = 'two'

答案 6 :(得分:0)

这是因为您的js代码逐行执行synchronously。 因此,当您调用test_fn()并执行行document.getElementById('one').id = 'two';时,<div id="one" class="one"> DOM元素将更改为<div id="two" class="one">

接下来,执行第document.getElementById('one').classname = 'two';行但会导致错误TypeError: document.getElementById(...) is null,因为您尝试获取id =“1”的元素但是,这次因为您之前更改了它而无法找到它id =“two”;-P