![](/img/trans.png)
[英]Use data-attribute in javascript to alter elements width
[英]Use javascript to alter width of a div
我有一些javascript代码和一个已经为其分配了事件/操作的按钮,我想向该按钮添加第二个事件。 当前相关的代码如下:
events: {onclick: "showTab('"+n+"')"},
我如何修改此代码,使其也将class ='panel'的div的'wdith'属性增加固定的数量,例如50px?
谢谢
编辑:
我明白。 问题是我不知道如何更改ID,仅更改类名。 div是在javascript中使用buildDomModel作为以下对象构造的:
this.buildDomModel(this.elements["page_panels"],
{ tag: "div", className: "tab_panel",
id: "tab_panel",
childs: [...]}
)
但是ID不会更改为'tab_panel'。 但是,类名确实更改为“ tab_panel”,这就是为什么我尝试使用getelementbyclass的原因。 所以div没有id,我不知道如何使用buildDomModel创建一个id,但是我可以提供唯一的类。 我也将代码放在原始帖子中。
这个:
events: {onclick: "showTab('"+n+"'); $('div.panel').width('50px');"},
或者,您可能想在
showTab
函数中添加以下行。
$('div.panel').width('50px');
更新:
或者您可以使用香草javascript:
function setWidth()
{
var div = document.getElementById('div_id');
div.setAttribute('width', '50px');
}
或者,如果您要将宽度仅应用于一个特定的div,请为该div提供一个ID,然后使用此函数:
events: {onclick: "showTab('"+n+"'); setWidth();"},
然后像这样使用它:
setWidth();
或者,您可能想在showTab
函数中添加以下行。
setWidth();
更新2:
确定修改函数,如下所示:
function setWidth(){
jQuery('.tab_panel').each(function(){
jQuery(this).attr('style', 'width:' + (jQuery(this).width() + 50));
});
}
请注意,使用jQuery时,应全部使用以下代码:
function setWidth(){ jQuery('.tab_panel').each(function(){ jQuery(this).attr('style', 'width:' + (jQuery(this).width() + 50)); }); }
您可以使用以下JQuery代码行代替该函数:
$('div.tab_panel').attr('style',"width:100px");
无论如何,如果您不希望它成为JQuery,则此功能应该可以工作:
function setWidth() {
var divs = document.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
// check if this div has panel class
if (divs[i].getAttribute('class') === 'tab_panel') {
// set the style now
divs[i].setAttribute('style', 'width:100px');
}
}
}
将width属性设置为div不会起作用,您需要设置其样式,
所以我希望我提供的任何代码都能正常工作。
哦,没有,我早发的只是将width设置为一个新值,这个应该可以解决您的问题:
var x = $('div.tab_panel')[0].style.width.replace("px", "");
x = x + 50;
$('div.tab_panel').attr('style', "width:" + x + "px");
好的,这是一个非JQuery版本:
function setWidth() {
var divs = document.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
if (divs[i].getAttribute('class') === 'tab_panel') {
var x = divs[i].style.width.replace("px", "");
x = x + 50;
divs[i].setAttribute('style', 'width:' + x + 'px');
}
}
好的,这里是:
jQuery的:
function Button1_onclick() {
var x = $('div.tab_panel')[0].clientWidth;
x = x + 50;
$('div.tab_panel').attr('style', "width:" + x + "px");
}
非JQuert:
function setWidth() {
var divs = document.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
if (divs[i].getAttribute('class') === 'tab_panel') {
var x = divs[i].offsetWidth;
x = x + 50;
divs[i].setAttribute('style', 'width:' + x + 'px');
}
}
}
这应该工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.