如何捕获 JavaScript 而非 jQuery 中的属性值
How to capture value of an attribute in JavaScript not jQuery
我想使用 JavaScript 捕获标签上属性的值。我还没有成功。
这是我的 HTML 标记:
<html>
<head>
...
<!-- bootstrap-slider Plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css" rel="stylesheet">
...
</head>
<body>
...
<div class="form-group">
<label class="col-md-4 control-label" for="language_spanish">Spanish</label>
<div class="col-md-6">
<input id="language_spanish" type="text" data-provide="slider"
data-slider-ticks="[0,1,2]"
data-slider-min="0"
data-slider-max="2"
data-slider-step="1"
data-slider-value="0"
data-slider-tooltip="show"
data-identifier="this is what I want to capture"
/>
</div>
</div>
...
</body>
</html>
这是我的 javascript:
var spanish = new Slider( '#language_spanish', { formatter } );
spanish.on( 'slideStop', function( value ) {
alert( value ); // this works perfectly!
alert( this.getAttribute( 'data-identifier' ) ); // does not work
alert( spanish.getAttribute( 'data-identifier' ) ); // does not work either
alert( spanish.attr( 'data-identifier' ) ); // does not work as well
});
可能吗?
仅供参考 jQuery 不适用于 bootstrap-滑块。试了又试,我一直在撞墙。 JavaScript 是我可以使用此插件检索值和属性的唯一方法。
修改为包括插件源:
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css
您可以使用 spanish.element
对象,该对象 returns 底层 DOM 元素的引用,然后可以使用 getAttribute()
方法。
var spanish = new Slider('#language_spanish');
console.log(spanish.element.getAttribute( 'data-identifier'))
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.js"></script>
<div class="form-group">
<label class="col-md-4 control-label" for="language_spanish">Spanish</label>
<div class="col-md-6">
<input id="language_spanish" type="text" data-provide="slider" data-slider-ticks="[0,1,2]" data-slider-min="0" data-slider-max="2" data-slider-step="1" data-slider-value="0" data-slider-tooltip="show" data-identifier="this is what I want to capture" />
</div>
</div>
您正在尝试访问 spanish
上的属性,它是 Slider 对象,而不是 DOM 对象。滑块对象没有 getAttribute 方法。我建议您查看 Slider 插件文档,看看是否有检索 DOM 对象参数的方法,或者单独跟踪 DOM 元素。
如果您在 DOM 对象上使用 getAttribute 方法,它将像这样正常工作:
this.getAttribute( 'data-identifier' )
我想使用 JavaScript 捕获标签上属性的值。我还没有成功。
这是我的 HTML 标记:
<html>
<head>
...
<!-- bootstrap-slider Plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css" rel="stylesheet">
...
</head>
<body>
...
<div class="form-group">
<label class="col-md-4 control-label" for="language_spanish">Spanish</label>
<div class="col-md-6">
<input id="language_spanish" type="text" data-provide="slider"
data-slider-ticks="[0,1,2]"
data-slider-min="0"
data-slider-max="2"
data-slider-step="1"
data-slider-value="0"
data-slider-tooltip="show"
data-identifier="this is what I want to capture"
/>
</div>
</div>
...
</body>
</html>
这是我的 javascript:
var spanish = new Slider( '#language_spanish', { formatter } );
spanish.on( 'slideStop', function( value ) {
alert( value ); // this works perfectly!
alert( this.getAttribute( 'data-identifier' ) ); // does not work
alert( spanish.getAttribute( 'data-identifier' ) ); // does not work either
alert( spanish.attr( 'data-identifier' ) ); // does not work as well
});
可能吗?
仅供参考 jQuery 不适用于 bootstrap-滑块。试了又试,我一直在撞墙。 JavaScript 是我可以使用此插件检索值和属性的唯一方法。
修改为包括插件源:
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.min.js
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css
您可以使用 spanish.element
对象,该对象 returns 底层 DOM 元素的引用,然后可以使用 getAttribute()
方法。
var spanish = new Slider('#language_spanish');
console.log(spanish.element.getAttribute( 'data-identifier'))
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/css/bootstrap-slider.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/9.7.2/bootstrap-slider.js"></script>
<div class="form-group">
<label class="col-md-4 control-label" for="language_spanish">Spanish</label>
<div class="col-md-6">
<input id="language_spanish" type="text" data-provide="slider" data-slider-ticks="[0,1,2]" data-slider-min="0" data-slider-max="2" data-slider-step="1" data-slider-value="0" data-slider-tooltip="show" data-identifier="this is what I want to capture" />
</div>
</div>
您正在尝试访问 spanish
上的属性,它是 Slider 对象,而不是 DOM 对象。滑块对象没有 getAttribute 方法。我建议您查看 Slider 插件文档,看看是否有检索 DOM 对象参数的方法,或者单独跟踪 DOM 元素。
如果您在 DOM 对象上使用 getAttribute 方法,它将像这样正常工作:
this.getAttribute( 'data-identifier' )