javascript - 如果设置了变量,文本跨度的简写?

标签 javascript jquery

我有一个非常好的变量声明:

var text = option.text(),
    attr,
    li,
    attr = {
        'class': 'option',
        html: text,
        data: {
            option: option
        },
        css: {
            display: 'block'
        }
    },
    li =  $j('<li/>', attr);

现在我需要向文本添加一个跨度(如果存在),如下所示:

var option = $j(this),
    text = option.text(),
    attr,
    li;

if(typeof option.data('alt') !== 'undefined') {
    text += '<span class="alt">' + option.data('alt') + '</span>';
}

attr = {
    'class': 'option',
    html: text,
    data: {
        option: option
    },
    css: {
        display: 'block'
    }
};

有什么方法可以用更少的代码内联添加 span 吗?

最佳答案

代替:

if(typeof option.data('alt') !== 'undefined'){
  text += '<span class="alt">'+option.data('alt')+'</span>';
}

尝试三元运算符:

text += option.data('alt') ? '<span class="alt">'+option.data('alt')+'</span>' : '';

关于javascript - 如果设置了变量,文本跨度的简写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947977/

相关文章:

属性上的 jQuery 通配符选择器

javascript - 隐藏/显示导航栏时,刷新页面时导航栏可见,然后滚动时导航栏消失

javascript - 在联系表单 7 中显示 ID 值

javascript - 是什么原因导致 "inline method not to work for chrome browser"?

javascript - 在 Backbone.js 中, "binds"的所有事件是什么?

jquery - jquery 中从来没有一个元素采用特定的类

javascript - JS时钟问题,以onclick启动

javascript - 如果我运行多个替换检查,为什么它不能正确替换?

java - 如何模块化 JavaCC 语法文件 (.jj)?

javascript - 从 JavaScript 数组中的对象键获取值