开发者

How do I get custom HTML attribute in jquery each() loop

开发者 https://www.devze.com 2023-02-24 04:26 出处:网络
I have the following HTML <input type=\"text\" name=\"first\" expression=\"firstExpression\"/> <input type=\"text\" name=\"last\" expression=\"secondExpression\"/>

I have the following HTML

 <input type="text" name="first" expression="firstExpression"/>
 <input type="text" name="last" expression="secondExpression"/>
 <input type="text" name="age" expression="thirdExpression"/>

I have a custom expression attribute.

I using jQuery to iterate over all the input elements, and although I will need to do something later, I need to be able to grab the expression value f开发者_Go百科or each of these input elements, and compare it to the value of that input element.

I am able to grab the expression value by doing the following

    var expressionValue = inputs.attr("expression");

but that only grabs the expression value of the following, I need to be able to do the same thing such as the following scenario

 function showValues()
 {
    var inputs = $(":input[expression]");
    inputs.each(function(index){ 
    var input = inputs[index];
    //need to be able to get 'expression' from input var here 
    });
 }

the code above is correctly grabbing all the elements I need, but I am unable to figure out how to grab the value of the expression attribute


use the $.each like this:

function showValues()
 {
    var inputs = $("input[expression]");
    console.log(inputs); //output input for debug
    inputs.each(function(){ 
       console.log(this,$(this).attr('expression'));//show expression (for debug)
    });
 }

showValues();

fiddle: http://jsfiddle.net/maniator/LmW8P/


try this

$("input[expression]").each(function(){
    console.log($(this).attr('expression'));
})


If all you care about is the attribute value you can optionally pass a function() into .attr() which will allow you iterate the collection.

function showValues() {
    var inputs = $(":input[expression]");
    inputs.attr("expression", function(index, expression){

    });
}

Code example on jsfiddle.


try

    $(input).attr('expression');//expression


Also if you have the liberty of using HTML5, it would be best to append the word "data-" to the custom attribute as this would not invalidate the document.

More details on Custom Attributes: Yay or Nay

And w3.org talks about custom attributes in more details and also mentions a dataset property to be able to access all such elements quite easily in script, details on W3.Org - Using Custom Attributes

Hope this helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号