Dejan Panovski
Dejan Panovski

Reputation: 67

Using ID as a variable

I'm trying to find the text of the span with the class name "link" but i have problems.

<div id="item-0" class="box">
    .......
</div>
<div id="item-1" class="box">
    <p><strong>Link: </strong><span class="link">http://www.domain.com/list44/</span></p>
    <p><input type="submit" value="submit" class="load-button2"></p>
</div>
<div id="item-2" class="box">
    .......
</div>


$(".load-button2").click(function(){
    var id = $(this).closest('.box').attr('id');
    alert(id);  // showing the right box ID
    var linkp = $(/*** what should i put here? ***/ "#" + id + " .link").text;
});

Upvotes: 0

Views: 107

Answers (4)

Blender
Blender

Reputation: 298106

You can try this code:

$(".load-button2").click(function(){
    var text = $(this).closest('.box').find('.link').text();
});

Upvotes: 4

Jason McCreary
Jason McCreary

Reputation: 72961

An alternative so you don't have to do another full DOM traversal (since you already get the container).

$(".load-button2").click(function(){
    var container = $(this).closest('.box');
    var id = container.attr('id');
    alert(id);  // showing the right box ID
    var linkp = container.find('.link').text();
    alert(linkp);
});

See it in action.

Upvotes: 1

DefyGravity
DefyGravity

Reputation: 6011

$(".load-button2").click(function(){
    var id = $(this).closest('.box').attr('id');
    alert(id);  // showing the right box ID
    //var linkp = $(what should i put here / "#" + id = " .link").text;
    var linkp = $("#"+id).find(".link").text;
});

Upvotes: 1

danwellman
danwellman

Reputation: 9253

You should just be able to do:

$(".load-button2").click(function(){
    var id = $(this).closest('.box').attr('id');
    alert(id);  // showing the right box ID
    var linkp = $("#" + id).find(".link").text();
});

Although, a more elegant solution would be:

$(".load-button2").click(function(){
    var linkp = $(this).closest('.box').find(".link").text();
});

Upvotes: 4

Related Questions