2013-10-09 4 views
0

Я создал структуру таблицы, в которой каждый td имеет текст. , вызывающий функцию onclick changeFocus (liVSE), не возвращает мне liVSE, предупреждая об этом, отображается как [object TableCellElement] .. Что делать, если мне нужно предупредить его как (liVSE). Или, пожалуйста, предложите любой другой более простой способ получить идентификаторполучить переданный аргумент в таблице tr td в javascript

Пожалуйста, см. Меня как новичок HTML CSS Разработчик Javascript.

function changeFocus(idname){ 
    alert(idname); 
    clearActive(); 
    //"info-"+idname.style.display = "block"; 
    idname.className = "tab-active"; 
    return true; 
} 

<table> 
    <tbody> 
     <tr> 
      <td id="liVSE" class="tab-active" ><span class="tabcorner"><span></span></span><a href="#info-liVSE" onclick="changeFocus(liVSE)">li VSE</a></td> 
      <td id="liGoals" class="tab"><span class="tabcorner"><span></span></span><a href="#info-liGoals" onclick="changeFocus(liGoals)">li Goals</a></td> 
      <td id="CisoInitiatives" class="tab"><span class="tabcorner"><span></span></span><a href="#info-CisoInitiatives" onclick="changeFocus(CisoInitiatives)">li Iniatives</a></td> 
      <td id="EntBusCounsilVSE" class="tab"><span class="tabcorner"><span></span></span><a href="#info-EntBusCounsilVSE" onclick="changeFocus(EntBusCounsilVSE)">Ent. Bus. Council VSE</a></td> 
      <td id="DSSGVSE" class="tab"><span class="tabcorner"><span></span></span><a href="#info-DSSGVSE"onclick="changeFocus(DSSGVSE)"> VSE</a></td> 
      <td id="SSPGVSE" class="tab"><span class="tabcorner"><span></span></span><a href="#info-SSPGVSE" onclick="changeFocus(SSPGVSE)"> VSE</a></td> 
      <td id="SSPGGoals" class="tab"><span class="tabcorner"><span></span></span><a href="#info-SSPGGoals" onclick="changeFocus(SSPGGoals)"> Goals</a></td> 
      <td id="CPDMEffectivity" class="tab"><span class="tabcorner"><span></span></span><a href="#info-Effectivity" onclick="changeFocus(Effectivity)"> Effectivity</a></td> 
     </tr> 
    </tbody> 
</table> 
+0

передайте аргументы как 'liVSE', так как это строка. –

+0

Что случилось со всем пустым '' s? – xec

ответ

1

попытка изменения onclick="changeFocus(liVSE)"

в

onclick="changeFocus('liVSE')" 

Примечание: в Котировки ' вокруг liVSE

+0

приветствую брата .... если это помогло ... upvote и отметить как ответ :) – iJade

1

изменить OnClick событие для всего элемента в

changeFocus(this.parentNode.id); 

Должен работать для вас

+0

Хорошее мышление, но почему вы не sugest, чтобы пройти просто 'this' и получить' .parentNode.id' внутри функции? Я думаю, это будет лучше. – DontVoteMeDown

+0

@DontVoteMeDown Я согласен. это тоже – gurvinder372

2

Чтобы избежать головной боли в будущем, я предлагаю вам отделить HTML от вашего скрипта (атрибут onclick является делом прошлого, на самом деле). Вы могли бы сделать что-то вроде следующего из внешнего файла JavaScript (связанный в конце документа)

function clickHandler(e) { 
    // e = event object 
    // this = <a> 

    e.preventDefault(); // prevent following the link (optional) 

    alert(this.parentNode.id); // alert the id of the parent node 

    // check your js console for what other properties you get available from the <a> 
    console.dir(this); 

    // uncomment to alert the value of the href attribute, for instance 
    //alert(this.attributes.href.value); 

} 

var links = document.getElementsByTagName("a"); 
var i = links.length; 

// loop through the links 
while (i--) { 
    // attach the click handler to each <a> 
    links[i].addEventListener("click", clickHandler); 
} 

Посмотрите http://jsfiddle.net/Tv3Lx/2/, где я снял встроенный скрипт вызывает (onclick атрибут)

Есть много чего не так с этим кодом (вы, вероятно, не хотите выбирать все элементы на странице, старый IE использует «attachEvent» вместо «addEventListener»), но, надеюсь, вы начнете в правильном направлении. MDN - отличный ресурс на JavaScript, с большим количеством примеров

Смежные вопросы