使用纯JavaScript(而不是jQuery),有没有一种方法可以测试一个元素是否包含一个类?
目前,我这样做:
HTML:
var test = document.getElementById("test");
var testClass = test.className;
switch (testClass) {
case "class1":
test.innerHTML = "I have class1";
break;
case "class2":
test.innerHTML = "I have class2";
break;
case "class3":
test.innerHTML = "I have class3";
break;
case "class4":
test.innerHTML = "I have class4";
break;
default:
test.innerHTML = "";
}Run Code Online (Sandbox Code Playgroud)
JS:
<div id="test" class="class1"></div>Run Code Online (Sandbox Code Playgroud)
这导致此输出,这是正确的:
<div id="test" class="class1 class5"></div>
Run Code Online (Sandbox Code Playgroud)
问题是,如果我将HTML更改为此...
var test = document.getElementById("test");
var testClass = test.className;
switch (testClass) {
case "class1":
test.innerHTML = "I have …Run Code Online (Sandbox Code Playgroud) 我想text-overflow在表格单元格中使用CSS ,这样如果文本太长而无法放在一行上,它将使用省略号剪辑而不是换行到多行.这可能吗?
我试过这个:
td {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
但white-space: nowrap似乎使文本(及其单元格)不断向右扩展,推动表格的总宽度超出其容器的宽度.但是,如果没有它,当文本到达单元格边缘时,文本将继续换行到多行.
我记得很久以前听过,在CSS font-family属性中包含多个单词的字体名称被引用被称为"最佳实践",如下所示:
font-family: "Arial Narrow", Arial, Helvetica, sans-serif;
Run Code Online (Sandbox Code Playgroud)
对于它,我尝试删除引号"Arial Narrow",Safari和Firefox没有任何问题呈现它.
那么,这个经验法则是否有任何逻辑,或者它只是一个神话?旧版浏览器的问题是否已不再适用于当前版本?我已经这么做了很长时间以至于我从未停下来思考是否真的有必要.
可能重复:
jquery从.text()中排除一些子节点
鉴于此HTML:
<a href="#" class="artist">Soulive<span class="create-play">Play</span></a>
Run Code Online (Sandbox Code Playgroud)
我想得到a(this在我的函数的上下文中)没有文本内容的文本内容span,所以我留下:
Soulive
Run Code Online (Sandbox Code Playgroud)
如果我做:
$(this).text();
Run Code Online (Sandbox Code Playgroud)
我明白了:
SoulivePlay
Run Code Online (Sandbox Code Playgroud)
如何排除文本内容span?
这很奇怪:我在<em>标签中包含了几行文字.无论我做什么,降低line-height低于17px 的值都没有效果.我可以将最大值line-height 提高到大于17px并适用,但我不能低于17px.
有问题的CSS是:
#others .item em {
font-size: 13px;
line-height: 17px;
}
Run Code Online (Sandbox Code Playgroud)
尝试调整高度和低度的线高,并在每次更改后运行更新的小提琴,您将看到我的意思.
为什么会这样?line-height在CSS中的其他任何地方都没有指定,因此没有任何内容覆盖它.无论如何情况都不是这样,因为我在同一个选择器中调整line-height上下,所以没有意义的是应用更高的值,但是更低的值会被覆盖.
我想编写一个if/else语句来测试文本输入的值是否不等于两个不同值中的任何一个.像这样(借口我的伪英语代码):
var test = $("#test").val();
if (test does not equal A or B){
do stuff;
}
else {
do other stuff;
}
如何在第2行写if语句的条件?
javascript boolean-logic if-statement equals conditional-statements
可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}
在JavaScript中,将变量定义为函数的目的是什么?我之前见过这个惯例,并没有完全理解它.
例如,在脚本的某个点上,函数被调用如下:
whatever();
但是我期望看到一个名为的函数whatever,如下所示:
function whatever(){
}
Run Code Online (Sandbox Code Playgroud)
相反,我会看到一个被称为whatever函数的变量,如下所示:
var whatever = function(){
}
Run Code Online (Sandbox Code Playgroud)
这是为了什么目的?为什么要这样做而不只是命名函数?
我正在使用Web Notification API在OSX下显示来自我的Web应用程序的桌面通知.
仅在Firefox中,当触发通知时,它还会播放声音(在Safari和Chrome中,使用完全相同的代码,仅显示通知,并且没有伴音效果).
我想在Firefox中禁用通知声音,但我在文档中找不到有关控制它的任何内容.这可能吗?
默认情况下,<input type="search" />渲染类似于Mac OS X上的"本机"搜索字段(圆角,清除按钮等).我想完全删除此自定义样式,以便输入看起来与等效的文本输入(<input type="text" />)相同,但同时保持输入类型设置为search.
我已经尝试了-webkit-appearance: none;,它非常接近...但是有一些有趣的边缘/填充,我似乎无法覆盖,这导致搜索字段的宽度渲染比文本输入短约20px.
是否还有其他-webkit-特定属性我不知道完全禁用样式?
有没有办法为HTML <area>元素设置背景颜色?我正在创建一个图像地图,当你将鼠标放在它们上面时,地图的某些部分会弹出一个工具提示,我认为如果我可以为<area>元素设置背景颜色那么你会看到很酷(也很方便)它们位于图像上方.
我尝试了背景颜色和边框,但都没有任何效果 - <area>元素仍然是"看不见的".我假设这是因为它<area>是一个自动关闭的标签,所以它实际上没有任何尺寸?但强迫高度和宽度也无济于事.
css ×5
javascript ×5
html ×2
area ×1
audio ×1
border ×1
coding-style ×1
convention ×1
dom ×1
em ×1
equals ×1
firefox ×1
font-family ×1
function ×1
if-statement ×1
imagemap ×1
input ×1
jquery ×1
macos ×1
overflow ×1
search ×1
textbox ×1
webkit ×1