我刚刚浏览了一个Web应用程序的代码,并看到了这个select
元素,它没有任何标识符(class
或id
),但有两个事件附加到此元件
我只是想知道这些事件是如何附加到这个元素的。我的意思是我知道可以附加事件的一些方法,但我不能将事件附加到元素上。
使用class="version_switcher_placeholder"
将事件附加到元素的第一个子元素我认为不是一个好主意。
修改:此处的所有人都说我们可以使用class
名称version_switcher_placeholder
来获取该元素,我理解这一点以及它本身提到的alredy。
我认为该事件可以附加到相关的选择元素。
答案 0 :(得分:2)
首先,如果你想做dom操作,保持你的元素没有任何选择器不是一个好主意。但是如果你不能改变它,并且如果你确定这样做,你可以使用Child combinator和nth-child伪代码的组合。
请考虑此示例以供参考。
<!DOCTYPE html>
<html>
<head>
<title>
Title
</title>
</head>
<body>
<ul>
<li>
<select>
<option value="testVal1">testVal1</option>
<option value="testVal2">testVal2</option>
<option value="testVal3">testVal3</option>
<option value="testVal4">testVal4</option>
</select>
</li>
</ul>
<script type="text/javascript">
var selectElement = document.querySelector("body > ul:nth-child(1) > li:nth-child(1) > select:nth-child(1)");
selectElement.style.color = 'red';
selectElement.addEventListener("change", function(event){
console.log( event );
})
</script>
</body>
</html>
答案 1 :(得分:1)
您可以使用类似
的内容$('.version_switcher_placeholder > select').on('change', function() { // do });
使用jQuery将事件绑定到它。
答案 2 :(得分:1)
如果我理解正确,可以context "when database is empty" do
context "and show is requested" do
before { get :show, params: { id: id } }
it "flash[:notice] is assigned to 'database is empty!'"
expect(flash[:notice]).to eq("database is empty!")
end
end
end
context "when database is not empty" do
before { FactoryGirl.create(:user) }
context "and show is requested" do
before { get :show, params: { id: id } }
it "does not assign anything to flash[:notice]"
expect(flash[:notice]).to be_nil
end
end
end
这样做:
getElementsByTagName
只需指定正确的document.getElementsByTagName("select")[0].onchange = function(){...};
答案 3 :(得分:0)
可能有多种方式,
scanf()
答案 4 :(得分:0)
您可以按标签名称选择元素。 getElementsByTagName并附上活动。
var elements = document.getElementsByTagName('li');
function printTag() {
console.log(this);
}
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].addEventListener("click", printTag, false);
}
&#13;
<div>
<ul>
<li>Tab 1</li>
<li>Tab 2</li>
<li>Tab 3</li>
</ul>
</div>
&#13;