2015-09-22 3 views
3

У меня есть html-элементы управления двумя наборами с разными идентификаторами на моей странице, когда я нажимаю a тег, который я хочу назвать DoSomething.Как вызвать тот же метод с разными идентификаторами

<div> 
    <a href="javascript:void(0);" onclick="DoSomething();"> 
    <span id="spnValue" >Value1</span> 
</div> 

<div> 
    <a href="javascript:void(0);" onclick="DoSomething();"> 
    <span id="spnValue1">Value2</span> 
</div> 

function DoSomething() { 
    var htmlVal = ""; 
    skuList = $("span[id*='spnValue']").html(); 
} 

Но какой бы ни один я нажимаю он дает Value1 в htmlVal. Как я могу различить и получить значение метода под названием

ответ

5

Вы можете передать щелкнул объект элемента к методу:

<a href="javascript:void(0);" onclick="DoSomething(this);"> 
<span id="spnValue1">Value2</span> 
</div> 

, а затем использовать его для обхода детского поверочного элемента:

function DoSomething(obj) { 
    var htmlVal = ""; 
    skuList = $(obj).find('span').html(); 
} 

Working Demo

+0

Что делать, если они все в одном DIV абд 'a' теги закрыты перед пролетом. Например. [link] http://jsfiddle.net/7qh3deb5/1/ –

+0

@hachitti: нравится это http://jsfiddle.net/6poxt9LL/ –

+0

Что делать, если span в многократных divs, 'next' задает undefined –

0

Вы можете передать текущий элемент функции, используя то, что вы можете найти sp элемент, который является дети на теге

<div> 
    <a href="javascript:void(0);" onclick="DoSomething(this);"> 
    <span id="spnValue" >Value1</span> 
    </a> 
</div> 

<div> 
    <a href="javascript:void(0);" onclick="DoSomething(this);"> 
    <span id="spnValue1">Value2</span> 
    </a> 
</div> 

function DoSomething(node) { 
    var htmlVal = ""; 
    skuList = $(node).find('span').html();//for children 
    //skuList = $(node).next('span').html();//for siblings 
} 
1
<div> 
     <a href="javascript:void(0);" onclick="DoSomething(this);"> 
     <span id="spnValue1">Value2</span> 
</div> 

function DoSomething(obj) { 
    var htmlVal = ""; 
    skuList = $(obj).parent().find('span').html(); 
} 
Смежные вопросы